home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / pyshared / xapian.py < prev    next >
Text File  |  2008-08-13  |  193KB  |  5,121 lines

  1. # This file was automatically generated by SWIG (http://www.swig.org).
  2. # Version 1.3.32
  3. #
  4. # Don't modify this file, modify the SWIG interface instead.
  5.  
  6. import _xapian
  7. import new
  8. new_instancemethod = new.instancemethod
  9. try:
  10.     _swig_property = property
  11. except NameError:
  12.     pass # Python < 2.2 doesn't have 'property'.
  13. def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
  14.     if (name == "thisown"): return self.this.own(value)
  15.     if (name == "this"):
  16.         if type(value).__name__ == 'PySwigObject':
  17.             self.__dict__[name] = value
  18.             return
  19.     method = class_type.__swig_setmethods__.get(name,None)
  20.     if method: return method(self,value)
  21.     if (not static) or hasattr(self,name):
  22.         self.__dict__[name] = value
  23.     else:
  24.         raise AttributeError("You cannot add attributes to %s" % self)
  25.  
  26. def _swig_setattr(self,class_type,name,value):
  27.     return _swig_setattr_nondynamic(self,class_type,name,value,0)
  28.  
  29. def _swig_getattr(self,class_type,name):
  30.     if (name == "thisown"): return self.this.own()
  31.     method = class_type.__swig_getmethods__.get(name,None)
  32.     if method: return method(self)
  33.     raise AttributeError,name
  34.  
  35. def _swig_repr(self):
  36.     try: strthis = "proxy of " + self.this.__repr__()
  37.     except: strthis = ""
  38.     return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
  39.  
  40. import types
  41. try:
  42.     _object = types.ObjectType
  43.     _newclass = 1
  44. except AttributeError:
  45.     class _object : pass
  46.     _newclass = 0
  47. del types
  48.  
  49.  
  50. def _swig_setattr_nondynamic_method(set):
  51.     def set_attr(self,name,value):
  52.         if (name == "thisown"): return self.this.own(value)
  53.         if hasattr(self,name) or (name == "this"):
  54.             set(self,name,value)
  55.         else:
  56.             raise AttributeError("You cannot add attributes to %s" % self)
  57.     return set_attr
  58.  
  59.  
  60. try:
  61.     import weakref
  62.     weakref_proxy = weakref.proxy
  63. except:
  64.     weakref_proxy = lambda x: x
  65.  
  66.  
  67. class PySwigIterator(object):
  68.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  69.     def __init__(self): raise AttributeError, "No constructor defined"
  70.     __repr__ = _swig_repr
  71.     __swig_destroy__ = _xapian.delete_PySwigIterator
  72.     def __iter__(self): return self
  73. PySwigIterator.value = new_instancemethod(_xapian.PySwigIterator_value,None,PySwigIterator)
  74. PySwigIterator.incr = new_instancemethod(_xapian.PySwigIterator_incr,None,PySwigIterator)
  75. PySwigIterator.decr = new_instancemethod(_xapian.PySwigIterator_decr,None,PySwigIterator)
  76. PySwigIterator.distance = new_instancemethod(_xapian.PySwigIterator_distance,None,PySwigIterator)
  77. PySwigIterator.equal = new_instancemethod(_xapian.PySwigIterator_equal,None,PySwigIterator)
  78. PySwigIterator.copy = new_instancemethod(_xapian.PySwigIterator_copy,None,PySwigIterator)
  79. PySwigIterator.next = new_instancemethod(_xapian.PySwigIterator_next,None,PySwigIterator)
  80. PySwigIterator.previous = new_instancemethod(_xapian.PySwigIterator_previous,None,PySwigIterator)
  81. PySwigIterator.advance = new_instancemethod(_xapian.PySwigIterator_advance,None,PySwigIterator)
  82. PySwigIterator.__eq__ = new_instancemethod(_xapian.PySwigIterator___eq__,None,PySwigIterator)
  83. PySwigIterator.__ne__ = new_instancemethod(_xapian.PySwigIterator___ne__,None,PySwigIterator)
  84. PySwigIterator.__iadd__ = new_instancemethod(_xapian.PySwigIterator___iadd__,None,PySwigIterator)
  85. PySwigIterator.__isub__ = new_instancemethod(_xapian.PySwigIterator___isub__,None,PySwigIterator)
  86. PySwigIterator.__add__ = new_instancemethod(_xapian.PySwigIterator___add__,None,PySwigIterator)
  87. PySwigIterator.__sub__ = new_instancemethod(_xapian.PySwigIterator___sub__,None,PySwigIterator)
  88. PySwigIterator_swigregister = _xapian.PySwigIterator_swigregister
  89. PySwigIterator_swigregister(PySwigIterator)
  90.  
  91. MSET_DID = _xapian.MSET_DID
  92. MSET_WT = _xapian.MSET_WT
  93. MSET_RANK = _xapian.MSET_RANK
  94. MSET_PERCENT = _xapian.MSET_PERCENT
  95. MSET_DOCUMENT = _xapian.MSET_DOCUMENT
  96. ESET_TNAME = _xapian.ESET_TNAME
  97. ESET_WT = _xapian.ESET_WT
  98. class Error(Exception):
  99.     __swig_setmethods__ = {}
  100.     __setattr__ = lambda self, name, value: _swig_setattr(self, Error, name, value)
  101.     __swig_getmethods__ = {}
  102.     __getattr__ = lambda self, name: _swig_getattr(self, Error, name)
  103.     def __init__(self): raise AttributeError, "No constructor defined"
  104.     __repr__ = _swig_repr
  105.     __swig_destroy__ = _xapian.delete_Error
  106. Error.get_type = new_instancemethod(_xapian.Error_get_type,None,Error)
  107. Error.get_msg = new_instancemethod(_xapian.Error_get_msg,None,Error)
  108. Error.get_context = new_instancemethod(_xapian.Error_get_context,None,Error)
  109. Error.get_error_string = new_instancemethod(_xapian.Error_get_error_string,None,Error)
  110. Error.get_errno = new_instancemethod(_xapian.Error_get_errno,None,Error)
  111. Error.__str__ = new_instancemethod(_xapian.Error___str__,None,Error)
  112. Error_swigregister = _xapian.Error_swigregister
  113. Error_swigregister(Error)
  114.  
  115. class LogicError(Error):
  116.     __swig_setmethods__ = {}
  117.     for _s in [Error]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  118.     __setattr__ = lambda self, name, value: _swig_setattr(self, LogicError, name, value)
  119.     __swig_getmethods__ = {}
  120.     for _s in [Error]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  121.     __getattr__ = lambda self, name: _swig_getattr(self, LogicError, name)
  122.     def __init__(self): raise AttributeError, "No constructor defined"
  123.     __repr__ = _swig_repr
  124.     __swig_destroy__ = _xapian.delete_LogicError
  125. LogicError_swigregister = _xapian.LogicError_swigregister
  126. LogicError_swigregister(LogicError)
  127.  
  128. class RuntimeError(Error):
  129.     __swig_setmethods__ = {}
  130.     for _s in [Error]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  131.     __setattr__ = lambda self, name, value: _swig_setattr(self, RuntimeError, name, value)
  132.     __swig_getmethods__ = {}
  133.     for _s in [Error]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  134.     __getattr__ = lambda self, name: _swig_getattr(self, RuntimeError, name)
  135.     def __init__(self): raise AttributeError, "No constructor defined"
  136.     __repr__ = _swig_repr
  137.     __swig_destroy__ = _xapian.delete_RuntimeError
  138. RuntimeError_swigregister = _xapian.RuntimeError_swigregister
  139. RuntimeError_swigregister(RuntimeError)
  140.  
  141. class AssertionError(LogicError):
  142.     __swig_setmethods__ = {}
  143.     for _s in [LogicError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  144.     __setattr__ = lambda self, name, value: _swig_setattr(self, AssertionError, name, value)
  145.     __swig_getmethods__ = {}
  146.     for _s in [LogicError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  147.     __getattr__ = lambda self, name: _swig_getattr(self, AssertionError, name)
  148.     __repr__ = _swig_repr
  149.     def __init__(self, *args): 
  150.         _xapian.AssertionError_swiginit(self,_xapian.new_AssertionError(*args))
  151.     __swig_destroy__ = _xapian.delete_AssertionError
  152. AssertionError_swigregister = _xapian.AssertionError_swigregister
  153. AssertionError_swigregister(AssertionError)
  154.  
  155. class InvalidArgumentError(LogicError):
  156.     __swig_setmethods__ = {}
  157.     for _s in [LogicError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  158.     __setattr__ = lambda self, name, value: _swig_setattr(self, InvalidArgumentError, name, value)
  159.     __swig_getmethods__ = {}
  160.     for _s in [LogicError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  161.     __getattr__ = lambda self, name: _swig_getattr(self, InvalidArgumentError, name)
  162.     __repr__ = _swig_repr
  163.     def __init__(self, *args): 
  164.         _xapian.InvalidArgumentError_swiginit(self,_xapian.new_InvalidArgumentError(*args))
  165.     __swig_destroy__ = _xapian.delete_InvalidArgumentError
  166. InvalidArgumentError_swigregister = _xapian.InvalidArgumentError_swigregister
  167. InvalidArgumentError_swigregister(InvalidArgumentError)
  168.  
  169. class InvalidOperationError(LogicError):
  170.     __swig_setmethods__ = {}
  171.     for _s in [LogicError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  172.     __setattr__ = lambda self, name, value: _swig_setattr(self, InvalidOperationError, name, value)
  173.     __swig_getmethods__ = {}
  174.     for _s in [LogicError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  175.     __getattr__ = lambda self, name: _swig_getattr(self, InvalidOperationError, name)
  176.     __repr__ = _swig_repr
  177.     def __init__(self, *args): 
  178.         _xapian.InvalidOperationError_swiginit(self,_xapian.new_InvalidOperationError(*args))
  179.     __swig_destroy__ = _xapian.delete_InvalidOperationError
  180. InvalidOperationError_swigregister = _xapian.InvalidOperationError_swigregister
  181. InvalidOperationError_swigregister(InvalidOperationError)
  182.  
  183. class UnimplementedError(LogicError):
  184.     __swig_setmethods__ = {}
  185.     for _s in [LogicError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  186.     __setattr__ = lambda self, name, value: _swig_setattr(self, UnimplementedError, name, value)
  187.     __swig_getmethods__ = {}
  188.     for _s in [LogicError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  189.     __getattr__ = lambda self, name: _swig_getattr(self, UnimplementedError, name)
  190.     __repr__ = _swig_repr
  191.     def __init__(self, *args): 
  192.         _xapian.UnimplementedError_swiginit(self,_xapian.new_UnimplementedError(*args))
  193.     __swig_destroy__ = _xapian.delete_UnimplementedError
  194. UnimplementedError_swigregister = _xapian.UnimplementedError_swigregister
  195. UnimplementedError_swigregister(UnimplementedError)
  196.  
  197. class DatabaseError(RuntimeError):
  198.     __swig_setmethods__ = {}
  199.     for _s in [RuntimeError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  200.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseError, name, value)
  201.     __swig_getmethods__ = {}
  202.     for _s in [RuntimeError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  203.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseError, name)
  204.     __repr__ = _swig_repr
  205.     def __init__(self, *args): 
  206.         _xapian.DatabaseError_swiginit(self,_xapian.new_DatabaseError(*args))
  207.     __swig_destroy__ = _xapian.delete_DatabaseError
  208. DatabaseError_swigregister = _xapian.DatabaseError_swigregister
  209. DatabaseError_swigregister(DatabaseError)
  210.  
  211. class DatabaseCorruptError(DatabaseError):
  212.     __swig_setmethods__ = {}
  213.     for _s in [DatabaseError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  214.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseCorruptError, name, value)
  215.     __swig_getmethods__ = {}
  216.     for _s in [DatabaseError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  217.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseCorruptError, name)
  218.     __repr__ = _swig_repr
  219.     def __init__(self, *args): 
  220.         _xapian.DatabaseCorruptError_swiginit(self,_xapian.new_DatabaseCorruptError(*args))
  221.     __swig_destroy__ = _xapian.delete_DatabaseCorruptError
  222. DatabaseCorruptError_swigregister = _xapian.DatabaseCorruptError_swigregister
  223. DatabaseCorruptError_swigregister(DatabaseCorruptError)
  224.  
  225. class DatabaseCreateError(DatabaseError):
  226.     __swig_setmethods__ = {}
  227.     for _s in [DatabaseError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  228.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseCreateError, name, value)
  229.     __swig_getmethods__ = {}
  230.     for _s in [DatabaseError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  231.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseCreateError, name)
  232.     __repr__ = _swig_repr
  233.     def __init__(self, *args): 
  234.         _xapian.DatabaseCreateError_swiginit(self,_xapian.new_DatabaseCreateError(*args))
  235.     __swig_destroy__ = _xapian.delete_DatabaseCreateError
  236. DatabaseCreateError_swigregister = _xapian.DatabaseCreateError_swigregister
  237. DatabaseCreateError_swigregister(DatabaseCreateError)
  238.  
  239. class DatabaseLockError(DatabaseError):
  240.     __swig_setmethods__ = {}
  241.     for _s in [DatabaseError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  242.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseLockError, name, value)
  243.     __swig_getmethods__ = {}
  244.     for _s in [DatabaseError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  245.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseLockError, name)
  246.     __repr__ = _swig_repr
  247.     def __init__(self, *args): 
  248.         _xapian.DatabaseLockError_swiginit(self,_xapian.new_DatabaseLockError(*args))
  249.     __swig_destroy__ = _xapian.delete_DatabaseLockError
  250. DatabaseLockError_swigregister = _xapian.DatabaseLockError_swigregister
  251. DatabaseLockError_swigregister(DatabaseLockError)
  252.  
  253. class DatabaseModifiedError(DatabaseError):
  254.     __swig_setmethods__ = {}
  255.     for _s in [DatabaseError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  256.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseModifiedError, name, value)
  257.     __swig_getmethods__ = {}
  258.     for _s in [DatabaseError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  259.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseModifiedError, name)
  260.     __repr__ = _swig_repr
  261.     def __init__(self, *args): 
  262.         _xapian.DatabaseModifiedError_swiginit(self,_xapian.new_DatabaseModifiedError(*args))
  263.     __swig_destroy__ = _xapian.delete_DatabaseModifiedError
  264. DatabaseModifiedError_swigregister = _xapian.DatabaseModifiedError_swigregister
  265. DatabaseModifiedError_swigregister(DatabaseModifiedError)
  266.  
  267. class DatabaseOpeningError(DatabaseError):
  268.     __swig_setmethods__ = {}
  269.     for _s in [DatabaseError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  270.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseOpeningError, name, value)
  271.     __swig_getmethods__ = {}
  272.     for _s in [DatabaseError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  273.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseOpeningError, name)
  274.     __repr__ = _swig_repr
  275.     def __init__(self, *args): 
  276.         _xapian.DatabaseOpeningError_swiginit(self,_xapian.new_DatabaseOpeningError(*args))
  277.     __swig_destroy__ = _xapian.delete_DatabaseOpeningError
  278. DatabaseOpeningError_swigregister = _xapian.DatabaseOpeningError_swigregister
  279. DatabaseOpeningError_swigregister(DatabaseOpeningError)
  280.  
  281. class DatabaseVersionError(DatabaseOpeningError):
  282.     __swig_setmethods__ = {}
  283.     for _s in [DatabaseOpeningError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  284.     __setattr__ = lambda self, name, value: _swig_setattr(self, DatabaseVersionError, name, value)
  285.     __swig_getmethods__ = {}
  286.     for _s in [DatabaseOpeningError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  287.     __getattr__ = lambda self, name: _swig_getattr(self, DatabaseVersionError, name)
  288.     __repr__ = _swig_repr
  289.     def __init__(self, *args): 
  290.         _xapian.DatabaseVersionError_swiginit(self,_xapian.new_DatabaseVersionError(*args))
  291.     __swig_destroy__ = _xapian.delete_DatabaseVersionError
  292. DatabaseVersionError_swigregister = _xapian.DatabaseVersionError_swigregister
  293. DatabaseVersionError_swigregister(DatabaseVersionError)
  294.  
  295. class DocNotFoundError(RuntimeError):
  296.     __swig_setmethods__ = {}
  297.     for _s in [RuntimeError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  298.     __setattr__ = lambda self, name, value: _swig_setattr(self, DocNotFoundError, name, value)
  299.     __swig_getmethods__ = {}
  300.     for _s in [RuntimeError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  301.     __getattr__ = lambda self, name: _swig_getattr(self, DocNotFoundError, name)
  302.     __repr__ = _swig_repr
  303.     def __init__(self, *args): 
  304.         _xapian.DocNotFoundError_swiginit(self,_xapian.new_DocNotFoundError(*args))
  305.     __swig_destroy__ = _xapian.delete_DocNotFoundError
  306. DocNotFoundError_swigregister = _xapian.DocNotFoundError_swigregister
  307. DocNotFoundError_swigregister(DocNotFoundError)
  308.  
  309. class FeatureUnavailableError(RuntimeError):
  310.     __swig_setmethods__ = {}
  311.     for _s in [RuntimeError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  312.     __setattr__ = lambda self, name, value: _swig_setattr(self, FeatureUnavailableError, name, value)
  313.     __swig_getmethods__ = {}
  314.     for _s in [RuntimeError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  315.     __getattr__ = lambda self, name: _swig_getattr(self, FeatureUnavailableError, name)
  316.     __repr__ = _swig_repr
  317.     def __init__(self, *args): 
  318.         _xapian.FeatureUnavailableError_swiginit(self,_xapian.new_FeatureUnavailableError(*args))
  319.     __swig_destroy__ = _xapian.delete_FeatureUnavailableError
  320. FeatureUnavailableError_swigregister = _xapian.FeatureUnavailableError_swigregister
  321. FeatureUnavailableError_swigregister(FeatureUnavailableError)
  322.  
  323. class InternalError(RuntimeError):
  324.     __swig_setmethods__ = {}
  325.     for _s in [RuntimeError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  326.     __setattr__ = lambda self, name, value: _swig_setattr(self, InternalError, name, value)
  327.     __swig_getmethods__ = {}
  328.     for _s in [RuntimeError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  329.     __getattr__ = lambda self, name: _swig_getattr(self, InternalError, name)
  330.     __repr__ = _swig_repr
  331.     def __init__(self, *args): 
  332.         _xapian.InternalError_swiginit(self,_xapian.new_InternalError(*args))
  333.     __swig_destroy__ = _xapian.delete_InternalError
  334. InternalError_swigregister = _xapian.InternalError_swigregister
  335. InternalError_swigregister(InternalError)
  336.  
  337. class NetworkError(RuntimeError):
  338.     __swig_setmethods__ = {}
  339.     for _s in [RuntimeError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  340.     __setattr__ = lambda self, name, value: _swig_setattr(self, NetworkError, name, value)
  341.     __swig_getmethods__ = {}
  342.     for _s in [RuntimeError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  343.     __getattr__ = lambda self, name: _swig_getattr(self, NetworkError, name)
  344.     __repr__ = _swig_repr
  345.     def __init__(self, *args): 
  346.         _xapian.NetworkError_swiginit(self,_xapian.new_NetworkError(*args))
  347.     __swig_destroy__ = _xapian.delete_NetworkError
  348. NetworkError_swigregister = _xapian.NetworkError_swigregister
  349. NetworkError_swigregister(NetworkError)
  350.  
  351. class NetworkTimeoutError(NetworkError):
  352.     __swig_setmethods__ = {}
  353.     for _s in [NetworkError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  354.     __setattr__ = lambda self, name, value: _swig_setattr(self, NetworkTimeoutError, name, value)
  355.     __swig_getmethods__ = {}
  356.     for _s in [NetworkError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  357.     __getattr__ = lambda self, name: _swig_getattr(self, NetworkTimeoutError, name)
  358.     __repr__ = _swig_repr
  359.     def __init__(self, *args): 
  360.         _xapian.NetworkTimeoutError_swiginit(self,_xapian.new_NetworkTimeoutError(*args))
  361.     __swig_destroy__ = _xapian.delete_NetworkTimeoutError
  362. NetworkTimeoutError_swigregister = _xapian.NetworkTimeoutError_swigregister
  363. NetworkTimeoutError_swigregister(NetworkTimeoutError)
  364.  
  365. class QueryParserError(RuntimeError):
  366.     __swig_setmethods__ = {}
  367.     for _s in [RuntimeError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  368.     __setattr__ = lambda self, name, value: _swig_setattr(self, QueryParserError, name, value)
  369.     __swig_getmethods__ = {}
  370.     for _s in [RuntimeError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  371.     __getattr__ = lambda self, name: _swig_getattr(self, QueryParserError, name)
  372.     __repr__ = _swig_repr
  373.     def __init__(self, *args): 
  374.         _xapian.QueryParserError_swiginit(self,_xapian.new_QueryParserError(*args))
  375.     __swig_destroy__ = _xapian.delete_QueryParserError
  376. QueryParserError_swigregister = _xapian.QueryParserError_swigregister
  377. QueryParserError_swigregister(QueryParserError)
  378.  
  379. class RangeError(RuntimeError):
  380.     __swig_setmethods__ = {}
  381.     for _s in [RuntimeError]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
  382.     __setattr__ = lambda self, name, value: _swig_setattr(self, RangeError, name, value)
  383.     __swig_getmethods__ = {}
  384.     for _s in [RuntimeError]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
  385.     __getattr__ = lambda self, name: _swig_getattr(self, RangeError, name)
  386.     __repr__ = _swig_repr
  387.     def __init__(self, *args): 
  388.         _xapian.RangeError_swiginit(self,_xapian.new_RangeError(*args))
  389.     __swig_destroy__ = _xapian.delete_RangeError
  390. RangeError_swigregister = _xapian.RangeError_swigregister
  391. RangeError_swigregister(RangeError)
  392.  
  393. version_string = _xapian.version_string
  394. major_version = _xapian.major_version
  395. minor_version = _xapian.minor_version
  396. revision = _xapian.revision
  397. xapian_version_string = _xapian.xapian_version_string
  398. xapian_major_version = _xapian.xapian_major_version
  399. xapian_minor_version = _xapian.xapian_minor_version
  400. xapian_revision = _xapian.xapian_revision
  401. class PositionIterator(object):
  402.     """
  403.     An iterator pointing to items in a list of positions. 
  404.     """
  405.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  406.     __repr__ = _swig_repr
  407.     def __init__(self, *args): 
  408.         """
  409.         Copying is allowed.
  410.  
  411.         Xapian::PositionIterator::PositionIterator(const PositionIterator &o)
  412.  
  413.         The internals are reference counted, so copying is also cheap. 
  414.         """
  415.         _xapian.PositionIterator_swiginit(self,_xapian.new_PositionIterator(*args))
  416.     __swig_destroy__ = _xapian.delete_PositionIterator
  417.     def skip_to(*args):
  418.         """
  419.         void
  420.         Xapian::PositionIterator::skip_to(Xapian::termpos pos) 
  421.         """
  422.         return _xapian.PositionIterator_skip_to(*args)
  423.  
  424.     def __str__(*args):
  425.         """
  426.         Return a string describing this object.
  427.  
  428.         std::string Xapian::PositionIterator::get_description() const 
  429.         """
  430.         return _xapian.PositionIterator___str__(*args)
  431.  
  432.     def get_description(*args):
  433.         """
  434.         Return a string describing this object.
  435.  
  436.         std::string Xapian::PositionIterator::get_description() const 
  437.         """
  438.         return _xapian.PositionIterator_get_description(*args)
  439.  
  440. PositionIterator.get_termpos = new_instancemethod(_xapian.PositionIterator_get_termpos,None,PositionIterator)
  441. PositionIterator.next = new_instancemethod(_xapian.PositionIterator_next,None,PositionIterator)
  442. PositionIterator.equals = new_instancemethod(_xapian.PositionIterator_equals,None,PositionIterator)
  443. PositionIterator.skip_to = new_instancemethod(_xapian.PositionIterator_skip_to,None,PositionIterator)
  444. PositionIterator.__str__ = new_instancemethod(_xapian.PositionIterator___str__,None,PositionIterator)
  445. PositionIterator.get_description = new_instancemethod(_xapian.PositionIterator_get_description,None,PositionIterator)
  446. PositionIterator.__eq__ = new_instancemethod(_xapian.PositionIterator___eq__,None,PositionIterator)
  447. PositionIterator.__ne__ = new_instancemethod(_xapian.PositionIterator___ne__,None,PositionIterator)
  448. PositionIterator_swigregister = _xapian.PositionIterator_swigregister
  449. PositionIterator_swigregister(PositionIterator)
  450. cvar = _xapian.cvar
  451. BAD_VALUENO = cvar.BAD_VALUENO
  452.  
  453. class PostingIterator(object):
  454.     """
  455.     An iterator pointing to items in a list of postings. 
  456.     """
  457.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  458.     __repr__ = _swig_repr
  459.     __swig_destroy__ = _xapian.delete_PostingIterator
  460.     def __init__(self, *args): 
  461.         """
  462.         Copying is allowed.
  463.  
  464.         Xapian::PostingIterator::PostingIterator(const PostingIterator &other)
  465.  
  466.         The internals are reference counted, so copying is also cheap. 
  467.         """
  468.         _xapian.PostingIterator_swiginit(self,_xapian.new_PostingIterator(*args))
  469.     def skip_to(*args):
  470.         """
  471.         Skip the iterator to document did, or the first document after did if
  472.         did isn't in the list of documents being iterated.
  473.  
  474.         void Xapian::PostingIterator::skip_to(Xapian::docid did) 
  475.         """
  476.         return _xapian.PostingIterator_skip_to(*args)
  477.  
  478.     def get_doclength(*args):
  479.         """
  480.         Get the length of the document at the current position in the
  481.         postlist.
  482.  
  483.         Xapian::doclength Xapian::PostingIterator::get_doclength() const
  484.  
  485.         This information may be stored in the postlist, in which case this
  486.         lookup should be extremely fast (indeed, not require further disk
  487.         access). If the information is not present in the postlist, it will be
  488.         retrieved from the database, at a greater performance cost. 
  489.         """
  490.         return _xapian.PostingIterator_get_doclength(*args)
  491.  
  492.     def get_wdf(*args):
  493.         """
  494.         Get the within document frequency of the document at the current
  495.         position in the postlist.
  496.  
  497.         Xapian::termcount Xapian::PostingIterator::get_wdf() const 
  498.         """
  499.         return _xapian.PostingIterator_get_wdf(*args)
  500.  
  501.     def positionlist_begin(*args):
  502.         """
  503.         Return PositionIterator pointing to start of positionlist for current
  504.         document.
  505.  
  506.         PositionIterator Xapian::PostingIterator::positionlist_begin() const
  507.  
  508.         """
  509.         return _xapian.PostingIterator_positionlist_begin(*args)
  510.  
  511.     def positionlist_end(*args):
  512.         """
  513.         Return PositionIterator pointing to end of positionlist for current
  514.         document.
  515.  
  516.         PositionIterator Xapian::PostingIterator::positionlist_end() const 
  517.         """
  518.         return _xapian.PostingIterator_positionlist_end(*args)
  519.  
  520.     def __str__(*args):
  521.         """
  522.         Return a string describing this object.
  523.  
  524.         std::string Xapian::PostingIterator::get_description() const 
  525.         """
  526.         return _xapian.PostingIterator___str__(*args)
  527.  
  528.     def get_description(*args):
  529.         """
  530.         Return a string describing this object.
  531.  
  532.         std::string Xapian::PostingIterator::get_description() const 
  533.         """
  534.         return _xapian.PostingIterator_get_description(*args)
  535.  
  536. PostingIterator.skip_to = new_instancemethod(_xapian.PostingIterator_skip_to,None,PostingIterator)
  537. PostingIterator.get_doclength = new_instancemethod(_xapian.PostingIterator_get_doclength,None,PostingIterator)
  538. PostingIterator.get_wdf = new_instancemethod(_xapian.PostingIterator_get_wdf,None,PostingIterator)
  539. PostingIterator.positionlist_begin = new_instancemethod(_xapian.PostingIterator_positionlist_begin,None,PostingIterator)
  540. PostingIterator.positionlist_end = new_instancemethod(_xapian.PostingIterator_positionlist_end,None,PostingIterator)
  541. PostingIterator.__str__ = new_instancemethod(_xapian.PostingIterator___str__,None,PostingIterator)
  542. PostingIterator.get_description = new_instancemethod(_xapian.PostingIterator_get_description,None,PostingIterator)
  543. PostingIterator.__eq__ = new_instancemethod(_xapian.PostingIterator___eq__,None,PostingIterator)
  544. PostingIterator.__ne__ = new_instancemethod(_xapian.PostingIterator___ne__,None,PostingIterator)
  545. PostingIterator.get_docid = new_instancemethod(_xapian.PostingIterator_get_docid,None,PostingIterator)
  546. PostingIterator.next = new_instancemethod(_xapian.PostingIterator_next,None,PostingIterator)
  547. PostingIterator.equals = new_instancemethod(_xapian.PostingIterator_equals,None,PostingIterator)
  548. PostingIterator_swigregister = _xapian.PostingIterator_swigregister
  549. PostingIterator_swigregister(PostingIterator)
  550.  
  551. __eq__ = _xapian.__eq__
  552. __ne__ = _xapian.__ne__
  553. class TermIterator(object):
  554.     """
  555.     An iterator pointing to items in a list of terms. 
  556.     """
  557.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  558.     __repr__ = _swig_repr
  559.     def __init__(self, *args): 
  560.         """
  561.         Copying is allowed.
  562.  
  563.         Xapian::TermIterator::TermIterator(const TermIterator &other)
  564.  
  565.         The internals are reference counted, so copying is also cheap. 
  566.         """
  567.         _xapian.TermIterator_swiginit(self,_xapian.new_TermIterator(*args))
  568.     __swig_destroy__ = _xapian.delete_TermIterator
  569.     def skip_to(*args):
  570.         """
  571.         Skip the iterator to term tname, or the first term after tname if
  572.         tname isn't in the list of terms being iterated.
  573.  
  574.         void Xapian::TermIterator::skip_to(const std::string &tname) 
  575.         """
  576.         return _xapian.TermIterator_skip_to(*args)
  577.  
  578.     def get_wdf(*args):
  579.         """
  580.         Return the wdf of the current term (if meaningful).
  581.  
  582.         Xapian::termcount Xapian::TermIterator::get_wdf() const
  583.  
  584.         The wdf (within document frequency) is the number of occurences of a
  585.         term in a particular document. 
  586.         """
  587.         return _xapian.TermIterator_get_wdf(*args)
  588.  
  589.     def get_termfreq(*args):
  590.         """
  591.         Return the term frequency of the current term (if meaningful).
  592.  
  593.         Xapian::doccount Xapian::TermIterator::get_termfreq() const
  594.  
  595.         The term frequency is the number of documents which a term indexes. 
  596.         """
  597.         return _xapian.TermIterator_get_termfreq(*args)
  598.  
  599.     def positionlist_begin(*args):
  600.         """
  601.         Return PositionIterator pointing to start of positionlist for current
  602.         term.
  603.  
  604.         PositionIterator Xapian::TermIterator::positionlist_begin() const 
  605.         """
  606.         return _xapian.TermIterator_positionlist_begin(*args)
  607.  
  608.     def positionlist_end(*args):
  609.         """
  610.         Return PositionIterator pointing to end of positionlist for current
  611.         term.
  612.  
  613.         PositionIterator Xapian::TermIterator::positionlist_end() const 
  614.         """
  615.         return _xapian.TermIterator_positionlist_end(*args)
  616.  
  617.     def __str__(*args):
  618.         """
  619.         Return a string describing this object.
  620.  
  621.         std::string Xapian::TermIterator::get_description() const 
  622.         """
  623.         return _xapian.TermIterator___str__(*args)
  624.  
  625.     def get_description(*args):
  626.         """
  627.         Return a string describing this object.
  628.  
  629.         std::string Xapian::TermIterator::get_description() const 
  630.         """
  631.         return _xapian.TermIterator_get_description(*args)
  632.  
  633. TermIterator.get_term = new_instancemethod(_xapian.TermIterator_get_term,None,TermIterator)
  634. TermIterator.next = new_instancemethod(_xapian.TermIterator_next,None,TermIterator)
  635. TermIterator.equals = new_instancemethod(_xapian.TermIterator_equals,None,TermIterator)
  636. TermIterator.skip_to = new_instancemethod(_xapian.TermIterator_skip_to,None,TermIterator)
  637. TermIterator.get_wdf = new_instancemethod(_xapian.TermIterator_get_wdf,None,TermIterator)
  638. TermIterator.get_termfreq = new_instancemethod(_xapian.TermIterator_get_termfreq,None,TermIterator)
  639. TermIterator.positionlist_begin = new_instancemethod(_xapian.TermIterator_positionlist_begin,None,TermIterator)
  640. TermIterator.positionlist_end = new_instancemethod(_xapian.TermIterator_positionlist_end,None,TermIterator)
  641. TermIterator.__str__ = new_instancemethod(_xapian.TermIterator___str__,None,TermIterator)
  642. TermIterator.get_description = new_instancemethod(_xapian.TermIterator_get_description,None,TermIterator)
  643. TermIterator.__eq__ = new_instancemethod(_xapian.TermIterator___eq__,None,TermIterator)
  644. TermIterator.__ne__ = new_instancemethod(_xapian.TermIterator___ne__,None,TermIterator)
  645. TermIterator_swigregister = _xapian.TermIterator_swigregister
  646. TermIterator_swigregister(TermIterator)
  647.  
  648. class ValueIterator(object):
  649.     """
  650.     An iterator pointing to values associated with a document. 
  651.     """
  652.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  653.     __repr__ = _swig_repr
  654.     def __init__(self, *args): 
  655.         """
  656.         Copying is allowed (and is cheap).
  657.  
  658.         Xapian::ValueIterator::ValueIterator(const ValueIterator &other) 
  659.         """
  660.         _xapian.ValueIterator_swiginit(self,_xapian.new_ValueIterator(*args))
  661.     __swig_destroy__ = _xapian.delete_ValueIterator
  662.     def get_valueno(*args):
  663.         """
  664.         Get the number of the value at the current position.
  665.  
  666.         Xapian::valueno Xapian::ValueIterator::get_valueno() const 
  667.         """
  668.         return _xapian.ValueIterator_get_valueno(*args)
  669.  
  670.     def __str__(*args):
  671.         """
  672.         Return a string describing this object.
  673.  
  674.         std::string Xapian::ValueIterator::get_description() const 
  675.         """
  676.         return _xapian.ValueIterator___str__(*args)
  677.  
  678.     def get_description(*args):
  679.         """
  680.         Return a string describing this object.
  681.  
  682.         std::string Xapian::ValueIterator::get_description() const 
  683.         """
  684.         return _xapian.ValueIterator_get_description(*args)
  685.  
  686. ValueIterator.get_value = new_instancemethod(_xapian.ValueIterator_get_value,None,ValueIterator)
  687. ValueIterator.next = new_instancemethod(_xapian.ValueIterator_next,None,ValueIterator)
  688. ValueIterator.equals = new_instancemethod(_xapian.ValueIterator_equals,None,ValueIterator)
  689. ValueIterator.get_valueno = new_instancemethod(_xapian.ValueIterator_get_valueno,None,ValueIterator)
  690. ValueIterator.__str__ = new_instancemethod(_xapian.ValueIterator___str__,None,ValueIterator)
  691. ValueIterator.get_description = new_instancemethod(_xapian.ValueIterator_get_description,None,ValueIterator)
  692. ValueIterator.__eq__ = new_instancemethod(_xapian.ValueIterator___eq__,None,ValueIterator)
  693. ValueIterator.__ne__ = new_instancemethod(_xapian.ValueIterator___ne__,None,ValueIterator)
  694. ValueIterator_swigregister = _xapian.ValueIterator_swigregister
  695. ValueIterator_swigregister(ValueIterator)
  696.  
  697. class Document(object):
  698.     """
  699.     A document in the database - holds data, values, terms, and postings.
  700.  
  701.     """
  702.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  703.     __repr__ = _swig_repr
  704.     def __init__(self, *args): 
  705.         """
  706.         Make a new empty Document.
  707.  
  708.         Xapian::Document::Document() 
  709.         """
  710.         _xapian.Document_swiginit(self,_xapian.new_Document(*args))
  711.     __swig_destroy__ = _xapian.delete_Document
  712.     def get_value(*args):
  713.         """
  714.         Get value by number.
  715.  
  716.         std::string Xapian::Document::get_value(Xapian::valueno valueno) const
  717.  
  718.         Returns an empty string if no value with the given number is present
  719.         in the document.
  720.  
  721.         Parameters:
  722.         -----------
  723.  
  724.         valueno:  The number of the value. 
  725.         """
  726.         return _xapian.Document_get_value(*args)
  727.  
  728.     def add_value(*args):
  729.         """
  730.         Add a new value.
  731.  
  732.         void Xapian::Document::add_value(Xapian::valueno valueno, const
  733.         std::string &value)
  734.  
  735.         It will replace any existing value with the same number. 
  736.         """
  737.         return _xapian.Document_add_value(*args)
  738.  
  739.     def remove_value(*args):
  740.         """
  741.         Remove any value with the given number.
  742.  
  743.         void Xapian::Document::remove_value(Xapian::valueno valueno) 
  744.         """
  745.         return _xapian.Document_remove_value(*args)
  746.  
  747.     def clear_values(*args):
  748.         """
  749.         Remove all values associated with the document.
  750.  
  751.         void Xapian::Document::clear_values() 
  752.         """
  753.         return _xapian.Document_clear_values(*args)
  754.  
  755.     def get_data(*args):
  756.         """
  757.         Get data stored in the document.
  758.  
  759.         std::string Xapian::Document::get_data() const
  760.  
  761.         This is a potentially expensive operation, and shouldn't normally be
  762.         used in a match decider functor. Put data for use by match deciders in
  763.         a value instead. 
  764.         """
  765.         return _xapian.Document_get_data(*args)
  766.  
  767.     def set_data(*args):
  768.         """
  769.         Set data stored in the document.
  770.  
  771.         void Xapian::Document::set_data(const std::string &data) 
  772.         """
  773.         return _xapian.Document_set_data(*args)
  774.  
  775.     def add_posting(*args):
  776.         """
  777.         Add an occurrence of a term at a particular position.
  778.  
  779.         void Xapian::Document::add_posting(const std::string &tname,
  780.         Xapian::termpos tpos, Xapian::termcount wdfinc=1)
  781.  
  782.         Multiple occurrences of the term at the same position are represented
  783.         only once in the positional information, but do increase the wdf.
  784.  
  785.         If the term is not already in the document, it will be added to it.
  786.  
  787.         Parameters:
  788.         -----------
  789.  
  790.         tname:  The name of the term.
  791.  
  792.         tpos:  The position of the term.
  793.  
  794.         wdfinc:  The increment that will be applied to the wdf for this term.
  795.  
  796.         """
  797.         return _xapian.Document_add_posting(*args)
  798.  
  799.     def add_term(*args):
  800.         """
  801.         Add a term to the document, without positional information.
  802.  
  803.         void Xapian::Document::add_term(const std::string &tname,
  804.         Xapian::termcount wdfinc=1)
  805.  
  806.         Any existing positional information for the term will be left
  807.         unmodified.
  808.  
  809.         Parameters:
  810.         -----------
  811.  
  812.         tname:  The name of the term.
  813.  
  814.         wdfinc:  The increment that will be applied to the wdf for this term.
  815.  
  816.         """
  817.         return _xapian.Document_add_term(*args)
  818.  
  819.     def remove_posting(*args):
  820.         """
  821.         Remove a posting of a term from the document.
  822.  
  823.         void Xapian::Document::remove_posting(const std::string &tname,
  824.         Xapian::termpos tpos, Xapian::termcount wdfdec=1)
  825.  
  826.         Note that the term will still index the document even if all
  827.         occurrences are removed. To remove a term from a document completely,
  828.         use remove_term().
  829.  
  830.         Parameters:
  831.         -----------
  832.  
  833.         tname:  The name of the term.
  834.  
  835.         tpos:  The position of the term.
  836.  
  837.         wdfdec:  The decrement that will be applied to the wdf when removing
  838.         this posting. The wdf will not go below the value of 0.
  839.  
  840.         Parameters:
  841.         -----------
  842.  
  843.         Xapian::InvalidArgumentError:  will be thrown if the term is not at
  844.         the position specified in the position list for this term in this
  845.         document.
  846.  
  847.         Xapian::InvalidArgumentError:  will be thrown if the term is not in
  848.         the document 
  849.         """
  850.         return _xapian.Document_remove_posting(*args)
  851.  
  852.     def remove_term(*args):
  853.         """
  854.         Remove a term and all postings associated with it.
  855.  
  856.         void Xapian::Document::remove_term(const std::string &tname)
  857.  
  858.         Parameters:
  859.         -----------
  860.  
  861.         tname:  The name of the term.
  862.  
  863.         Parameters:
  864.         -----------
  865.  
  866.         Xapian::InvalidArgumentError:  will be thrown if the term is not in
  867.         the document 
  868.         """
  869.         return _xapian.Document_remove_term(*args)
  870.  
  871.     def clear_terms(*args):
  872.         """
  873.         Remove all terms (and postings) from the document.
  874.  
  875.         void Xapian::Document::clear_terms() 
  876.         """
  877.         return _xapian.Document_clear_terms(*args)
  878.  
  879.     def termlist_count(*args):
  880.         """
  881.         The length of the termlist - i.e.
  882.  
  883.         Xapian::termcount Xapian::Document::termlist_count() const
  884.  
  885.         the number of different terms which index this document. 
  886.         """
  887.         return _xapian.Document_termlist_count(*args)
  888.  
  889.     def termlist_begin(*args):
  890.         """
  891.         Iterator for the terms in this document.
  892.  
  893.         TermIterator Xapian::Document::termlist_begin() const 
  894.         """
  895.         return _xapian.Document_termlist_begin(*args)
  896.  
  897.     def termlist_end(*args):
  898.         """
  899.         Equivalent end iterator for termlist_begin().
  900.  
  901.         TermIterator Xapian::Document::termlist_end() const 
  902.         """
  903.         return _xapian.Document_termlist_end(*args)
  904.  
  905.     def values_count(*args):
  906.         """
  907.         Count the values in this document.
  908.  
  909.         Xapian::termcount Xapian::Document::values_count() const 
  910.         """
  911.         return _xapian.Document_values_count(*args)
  912.  
  913.     def values_begin(*args):
  914.         """
  915.         Iterator for the values in this document.
  916.  
  917.         ValueIterator Xapian::Document::values_begin() const 
  918.         """
  919.         return _xapian.Document_values_begin(*args)
  920.  
  921.     def values_end(*args):
  922.         """
  923.         Equivalent end iterator for values_begin().
  924.  
  925.         ValueIterator Xapian::Document::values_end() const 
  926.         """
  927.         return _xapian.Document_values_end(*args)
  928.  
  929.     def get_docid(*args):
  930.         """
  931.         Get the document id which is associated with this document (if any).
  932.  
  933.         docid Xapian::Document::get_docid() const
  934.  
  935.         NB If multiple databases are being searched together, then this will
  936.         be the document id in the individual database, not the merged
  937.         database!
  938.  
  939.         If this document came from a database, return the document id in that
  940.         database. Otherwise, return 0. 
  941.         """
  942.         return _xapian.Document_get_docid(*args)
  943.  
  944.     def __str__(*args):
  945.         """
  946.         Return a string describing this object.
  947.  
  948.         std::string Xapian::Document::get_description() const 
  949.         """
  950.         return _xapian.Document___str__(*args)
  951.  
  952.     def get_description(*args):
  953.         """
  954.         Return a string describing this object.
  955.  
  956.         std::string Xapian::Document::get_description() const 
  957.         """
  958.         return _xapian.Document_get_description(*args)
  959.  
  960. Document.get_value = new_instancemethod(_xapian.Document_get_value,None,Document)
  961. Document.add_value = new_instancemethod(_xapian.Document_add_value,None,Document)
  962. Document.remove_value = new_instancemethod(_xapian.Document_remove_value,None,Document)
  963. Document.clear_values = new_instancemethod(_xapian.Document_clear_values,None,Document)
  964. Document.get_data = new_instancemethod(_xapian.Document_get_data,None,Document)
  965. Document.set_data = new_instancemethod(_xapian.Document_set_data,None,Document)
  966. Document.add_posting = new_instancemethod(_xapian.Document_add_posting,None,Document)
  967. Document.add_term = new_instancemethod(_xapian.Document_add_term,None,Document)
  968. Document.remove_posting = new_instancemethod(_xapian.Document_remove_posting,None,Document)
  969. Document.remove_term = new_instancemethod(_xapian.Document_remove_term,None,Document)
  970. Document.clear_terms = new_instancemethod(_xapian.Document_clear_terms,None,Document)
  971. Document.termlist_count = new_instancemethod(_xapian.Document_termlist_count,None,Document)
  972. Document.termlist_begin = new_instancemethod(_xapian.Document_termlist_begin,None,Document)
  973. Document.termlist_end = new_instancemethod(_xapian.Document_termlist_end,None,Document)
  974. Document.values_count = new_instancemethod(_xapian.Document_values_count,None,Document)
  975. Document.values_begin = new_instancemethod(_xapian.Document_values_begin,None,Document)
  976. Document.values_end = new_instancemethod(_xapian.Document_values_end,None,Document)
  977. Document.get_docid = new_instancemethod(_xapian.Document_get_docid,None,Document)
  978. Document.__str__ = new_instancemethod(_xapian.Document___str__,None,Document)
  979. Document.get_description = new_instancemethod(_xapian.Document_get_description,None,Document)
  980. Document_swigregister = _xapian.Document_swigregister
  981. Document_swigregister(Document)
  982.  
  983. class MSet(object):
  984.     """
  985.     A match set ( MSet).
  986.  
  987.     This class represents (a portion of) the results of a query. 
  988.     """
  989.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  990.     __repr__ = _swig_repr
  991.     def __init__(self, *args): 
  992.         """
  993.         Copying is allowed (and is cheap).
  994.  
  995.         Xapian::MSet::MSet(const MSet &other) 
  996.         """
  997.         _xapian.MSet_swiginit(self,_xapian.new_MSet(*args))
  998.     __swig_destroy__ = _xapian.delete_MSet
  999.     def fetch(*args):
  1000.         """
  1001.         Fetch all the items in the MSet.
  1002.  
  1003.         void Xapian::MSet::fetch() const 
  1004.         """
  1005.         return _xapian.MSet_fetch(*args)
  1006.  
  1007.     def convert_to_percent(*args):
  1008.         """
  1009.         Return the percentage score for a particular item.
  1010.  
  1011.         Xapian::percent Xapian::MSet::convert_to_percent(const MSetIterator
  1012.         &it) const 
  1013.         """
  1014.         return _xapian.MSet_convert_to_percent(*args)
  1015.  
  1016.     def get_termfreq(*args):
  1017.         """
  1018.         Return the term frequency of the given query term.
  1019.  
  1020.         Xapian::doccount Xapian::MSet::get_termfreq(const std::string &tname)
  1021.         const
  1022.  
  1023.         Parameters:
  1024.         -----------
  1025.  
  1026.         tname:  The term to look for.
  1027.  
  1028.         Parameters:
  1029.         -----------
  1030.  
  1031.         Xapian::InvalidArgumentError:  is thrown if the term was not in the
  1032.         query. 
  1033.         """
  1034.         return _xapian.MSet_get_termfreq(*args)
  1035.  
  1036.     def get_termweight(*args):
  1037.         """
  1038.         Return the term weight of the given query term.
  1039.  
  1040.         Xapian::weight Xapian::MSet::get_termweight(const std::string &tname)
  1041.         const
  1042.  
  1043.         Parameters:
  1044.         -----------
  1045.  
  1046.         tname:  The term to look for.
  1047.  
  1048.         Parameters:
  1049.         -----------
  1050.  
  1051.         Xapian::InvalidArgumentError:  is thrown if the term was not in the
  1052.         query. 
  1053.         """
  1054.         return _xapian.MSet_get_termweight(*args)
  1055.  
  1056.     def get_firstitem(*args):
  1057.         """
  1058.         The index of the first item in the result which was put into the MSet.
  1059.  
  1060.         Xapian::doccount Xapian::MSet::get_firstitem() const
  1061.  
  1062.         This corresponds to the parameter "first" specified in
  1063.         Xapian::Enquire::get_mset(). A value of 0 corresponds to the highest
  1064.         result being the first item in the MSet. 
  1065.         """
  1066.         return _xapian.MSet_get_firstitem(*args)
  1067.  
  1068.     def get_matches_lower_bound(*args):
  1069.         """
  1070.         A lower bound on the number of documents in the database which match
  1071.         the query.
  1072.  
  1073.         Xapian::doccount Xapian::MSet::get_matches_lower_bound() const
  1074.  
  1075.         This figure takes into account collapsing of duplicates, and weighting
  1076.         cutoff values.
  1077.  
  1078.         This number is usually considerably less than the actual number of
  1079.         documents which match the query. 
  1080.         """
  1081.         return _xapian.MSet_get_matches_lower_bound(*args)
  1082.  
  1083.     def get_matches_estimated(*args):
  1084.         """
  1085.         An estimate for the number of documents in the database which match
  1086.         the query.
  1087.  
  1088.         Xapian::doccount Xapian::MSet::get_matches_estimated() const
  1089.  
  1090.         This figure takes into account collapsing of duplicates, and weighting
  1091.         cutoff values.
  1092.  
  1093.         This value is returned because there is sometimes a request to display
  1094.         such information. However, our experience is that presenting this
  1095.         value to users causes them to worry about the large number of results,
  1096.         rather than how useful those at the top of the result set are, and is
  1097.         thus undesirable. 
  1098.         """
  1099.         return _xapian.MSet_get_matches_estimated(*args)
  1100.  
  1101.     def get_matches_upper_bound(*args):
  1102.         """
  1103.         An upper bound on the number of documents in the database which match
  1104.         the query.
  1105.  
  1106.         Xapian::doccount Xapian::MSet::get_matches_upper_bound() const
  1107.  
  1108.         This figure takes into account collapsing of duplicates, and weighting
  1109.         cutoff values.
  1110.  
  1111.         This number is usually considerably greater than the actual number of
  1112.         documents which match the query. 
  1113.         """
  1114.         return _xapian.MSet_get_matches_upper_bound(*args)
  1115.  
  1116.     def get_max_possible(*args):
  1117.         """
  1118.         The maximum possible weight in the MSet.
  1119.  
  1120.         Xapian::weight Xapian::MSet::get_max_possible() const
  1121.  
  1122.         This weight is likely not to be attained in the set of results, but
  1123.         represents an upper bound on the weight which a document could attain
  1124.         for the given query. 
  1125.         """
  1126.         return _xapian.MSet_get_max_possible(*args)
  1127.  
  1128.     def get_max_attained(*args):
  1129.         """
  1130.         The greatest weight which is attained by any document in the database.
  1131.  
  1132.         Xapian::weight Xapian::MSet::get_max_attained() const
  1133.  
  1134.         If firstitem == 0, this is the weight of the first entry in items.
  1135.  
  1136.         If no documents are found by the query, this will be 0.
  1137.  
  1138.         Note that calculation of max_attained requires calculation of at least
  1139.         one result item - therefore, if no items were requested when the query
  1140.         was performed (by specifying maxitems = 0 in
  1141.         Xapian::Enquire::get_mset()), this value will be 0. 
  1142.         """
  1143.         return _xapian.MSet_get_max_attained(*args)
  1144.  
  1145.     def size(*args):
  1146.         """
  1147.         The number of items in this MSet.
  1148.  
  1149.         Xapian::doccount Xapian::MSet::size() const 
  1150.         """
  1151.         return _xapian.MSet_size(*args)
  1152.  
  1153.     def empty(*args):
  1154.         """
  1155.         Test if this MSet is empty.
  1156.  
  1157.         bool Xapian::MSet::empty() const 
  1158.         """
  1159.         return _xapian.MSet_empty(*args)
  1160.  
  1161.     def begin(*args):
  1162.         """
  1163.         Iterator for the terms in this MSet.
  1164.  
  1165.         MSetIterator Xapian::MSet::begin() const 
  1166.         """
  1167.         return _xapian.MSet_begin(*args)
  1168.  
  1169.     def end(*args):
  1170.         """
  1171.         End iterator corresponding to begin().
  1172.  
  1173.         MSetIterator Xapian::MSet::end() const 
  1174.         """
  1175.         return _xapian.MSet_end(*args)
  1176.  
  1177.     def back(*args):
  1178.         """
  1179.         Iterator pointing to the last element of this MSet.
  1180.  
  1181.         MSetIterator Xapian::MSet::back() const 
  1182.         """
  1183.         return _xapian.MSet_back(*args)
  1184.  
  1185.     def get_hit(*args):
  1186.         """
  1187.         Get an item from the MSet.
  1188.  
  1189.         The supplied index is relative to the start of the MSet, not the absolute rank
  1190.         of the item. 
  1191.         """
  1192.         return _xapian.MSet_get_hit(*args)
  1193.  
  1194.     def __str__(*args):
  1195.         """
  1196.         Return a string describing this object.
  1197.  
  1198.         std::string Xapian::MSet::get_description() const 
  1199.         """
  1200.         return _xapian.MSet___str__(*args)
  1201.  
  1202.     def get_description(*args):
  1203.         """
  1204.         Return a string describing this object.
  1205.  
  1206.         std::string Xapian::MSet::get_description() const 
  1207.         """
  1208.         return _xapian.MSet_get_description(*args)
  1209.  
  1210.     items = _swig_property(_xapian.MSet_items_get)
  1211. MSet.fetch = new_instancemethod(_xapian.MSet_fetch,None,MSet)
  1212. MSet.convert_to_percent = new_instancemethod(_xapian.MSet_convert_to_percent,None,MSet)
  1213. MSet.get_termfreq = new_instancemethod(_xapian.MSet_get_termfreq,None,MSet)
  1214. MSet.get_termweight = new_instancemethod(_xapian.MSet_get_termweight,None,MSet)
  1215. MSet.get_firstitem = new_instancemethod(_xapian.MSet_get_firstitem,None,MSet)
  1216. MSet.get_matches_lower_bound = new_instancemethod(_xapian.MSet_get_matches_lower_bound,None,MSet)
  1217. MSet.get_matches_estimated = new_instancemethod(_xapian.MSet_get_matches_estimated,None,MSet)
  1218. MSet.get_matches_upper_bound = new_instancemethod(_xapian.MSet_get_matches_upper_bound,None,MSet)
  1219. MSet.get_max_possible = new_instancemethod(_xapian.MSet_get_max_possible,None,MSet)
  1220. MSet.get_max_attained = new_instancemethod(_xapian.MSet_get_max_attained,None,MSet)
  1221. MSet.size = new_instancemethod(_xapian.MSet_size,None,MSet)
  1222. MSet.empty = new_instancemethod(_xapian.MSet_empty,None,MSet)
  1223. MSet.begin = new_instancemethod(_xapian.MSet_begin,None,MSet)
  1224. MSet.end = new_instancemethod(_xapian.MSet_end,None,MSet)
  1225. MSet.back = new_instancemethod(_xapian.MSet_back,None,MSet)
  1226. MSet.get_hit = new_instancemethod(_xapian.MSet_get_hit,None,MSet)
  1227. MSet.get_document_percentage = new_instancemethod(_xapian.MSet_get_document_percentage,None,MSet)
  1228. MSet.get_document = new_instancemethod(_xapian.MSet_get_document,None,MSet)
  1229. MSet.get_docid = new_instancemethod(_xapian.MSet_get_docid,None,MSet)
  1230. MSet.get_document_id = new_instancemethod(_xapian.MSet_get_document_id,None,MSet)
  1231. MSet.__str__ = new_instancemethod(_xapian.MSet___str__,None,MSet)
  1232. MSet.get_description = new_instancemethod(_xapian.MSet_get_description,None,MSet)
  1233. MSet.__cmp__ = new_instancemethod(_xapian.MSet___cmp__,None,MSet)
  1234. MSet_swigregister = _xapian.MSet_swigregister
  1235. MSet_swigregister(MSet)
  1236.  
  1237. class MSetIterator(object):
  1238.     """
  1239.     An iterator pointing to items in an MSet.
  1240.  
  1241.     This is used for access to individual results of a match. 
  1242.     """
  1243.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  1244.     __repr__ = _swig_repr
  1245.     def __init__(self, *args): 
  1246.         """
  1247.         Copying is allowed (and is cheap).
  1248.  
  1249.         Xapian::MSetIterator::MSetIterator(const MSetIterator &other) 
  1250.         """
  1251.         _xapian.MSetIterator_swiginit(self,_xapian.new_MSetIterator(*args))
  1252.     __swig_destroy__ = _xapian.delete_MSetIterator
  1253.     def get_document(*args):
  1254.         """
  1255.         Get a Xapian::Document object for the current position.
  1256.  
  1257.         Xapian::Document Xapian::MSetIterator::get_document() const
  1258.  
  1259.         This method returns a Xapian::Document object which provides the
  1260.         information about the document pointed to by the MSetIterator.
  1261.  
  1262.         If the underlying database has suitable support, using this call
  1263.         (rather than asking the database for a document based on its document
  1264.         ID) will enable the system to ensure that the correct data is
  1265.         returned, and that the document has not been deleted or changed since
  1266.         the query was performed.
  1267.  
  1268.         A Xapian::Document object containing the document data.
  1269.  
  1270.         Parameters:
  1271.         -----------
  1272.  
  1273.         Xapian::DocNotFoundError:  The document specified could not be found
  1274.         in the database. 
  1275.         """
  1276.         return _xapian.MSetIterator_get_document(*args)
  1277.  
  1278.     def get_rank(*args):
  1279.         """
  1280.         Get the rank of the document at the current position.
  1281.  
  1282.         Xapian::doccount Xapian::MSetIterator::get_rank() const
  1283.  
  1284.         The rank is the position that this document is at in the ordered list
  1285.         of results of the query. The result is 0-based - i.e. the top-ranked
  1286.         document has a rank of 0. 
  1287.         """
  1288.         return _xapian.MSetIterator_get_rank(*args)
  1289.  
  1290.     def get_weight(*args):
  1291.         """
  1292.         Get the weight of the document at the current position.
  1293.  
  1294.         Xapian::weight Xapian::MSetIterator::get_weight() const 
  1295.         """
  1296.         return _xapian.MSetIterator_get_weight(*args)
  1297.  
  1298.     def get_collapse_key(*args):
  1299.         """
  1300.         Get the collapse key for this document.
  1301.  
  1302.         std::string Xapian::MSetIterator::get_collapse_key() const 
  1303.         """
  1304.         return _xapian.MSetIterator_get_collapse_key(*args)
  1305.  
  1306.     def get_collapse_count(*args):
  1307.         """
  1308.         Get an estimate of the number of documents that have been collapsed
  1309.         into this one.
  1310.  
  1311.         Xapian::doccount Xapian::MSetIterator::get_collapse_count() const
  1312.  
  1313.         The estimate will always be less than or equal to the actual number of
  1314.         other documents satisfying the match criteria with the same collapse
  1315.         key as this document.
  1316.  
  1317.         This method may return 0 even though there are other documents with
  1318.         the same collapse key which satisfying the match criteria. However if
  1319.         this method returns non-zero, there definitely are other such
  1320.         documents. So this method may be used to inform the user that there
  1321.         are "at least N other matches in this group", or to control whether
  1322.         to offer a "show other documents in this group" feature (but note
  1323.         that it may not offer it in every case where it would show other
  1324.         documents). 
  1325.         """
  1326.         return _xapian.MSetIterator_get_collapse_count(*args)
  1327.  
  1328.     def get_percent(*args):
  1329.         """
  1330.         This returns the weight of the document as a percentage score.
  1331.  
  1332.         Xapian::percent Xapian::MSetIterator::get_percent() const
  1333.  
  1334.         The return value will be in the range 0 to 100: 0 meaning that the
  1335.         item did not match the query at all. 
  1336.         """
  1337.         return _xapian.MSetIterator_get_percent(*args)
  1338.  
  1339.     def __str__(*args):
  1340.         """
  1341.         Return a string describing this object.
  1342.  
  1343.         std::string Xapian::MSetIterator::get_description() const 
  1344.         """
  1345.         return _xapian.MSetIterator___str__(*args)
  1346.  
  1347.     def get_description(*args):
  1348.         """
  1349.         Return a string describing this object.
  1350.  
  1351.         std::string Xapian::MSetIterator::get_description() const 
  1352.         """
  1353.         return _xapian.MSetIterator_get_description(*args)
  1354.  
  1355. MSetIterator.get_docid = new_instancemethod(_xapian.MSetIterator_get_docid,None,MSetIterator)
  1356. MSetIterator.next = new_instancemethod(_xapian.MSetIterator_next,None,MSetIterator)
  1357. MSetIterator.prev = new_instancemethod(_xapian.MSetIterator_prev,None,MSetIterator)
  1358. MSetIterator.equals = new_instancemethod(_xapian.MSetIterator_equals,None,MSetIterator)
  1359. MSetIterator.get_document = new_instancemethod(_xapian.MSetIterator_get_document,None,MSetIterator)
  1360. MSetIterator.get_rank = new_instancemethod(_xapian.MSetIterator_get_rank,None,MSetIterator)
  1361. MSetIterator.get_weight = new_instancemethod(_xapian.MSetIterator_get_weight,None,MSetIterator)
  1362. MSetIterator.get_collapse_key = new_instancemethod(_xapian.MSetIterator_get_collapse_key,None,MSetIterator)
  1363. MSetIterator.get_collapse_count = new_instancemethod(_xapian.MSetIterator_get_collapse_count,None,MSetIterator)
  1364. MSetIterator.get_percent = new_instancemethod(_xapian.MSetIterator_get_percent,None,MSetIterator)
  1365. MSetIterator.__str__ = new_instancemethod(_xapian.MSetIterator___str__,None,MSetIterator)
  1366. MSetIterator.get_description = new_instancemethod(_xapian.MSetIterator_get_description,None,MSetIterator)
  1367. MSetIterator.__eq__ = new_instancemethod(_xapian.MSetIterator___eq__,None,MSetIterator)
  1368. MSetIterator.__ne__ = new_instancemethod(_xapian.MSetIterator___ne__,None,MSetIterator)
  1369. MSetIterator_swigregister = _xapian.MSetIterator_swigregister
  1370. MSetIterator_swigregister(MSetIterator)
  1371.  
  1372. class ESet(object):
  1373.     """
  1374.     Class representing an ordered set of expand terms (an ESet).
  1375.  
  1376.     This set represents the results of an expand operation, which is
  1377.     performed by Xapian::Enquire::get_eset(). 
  1378.     """
  1379.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  1380.     __repr__ = _swig_repr
  1381.     def __init__(self, *args): 
  1382.         """
  1383.         Copying is allowed (and is cheap).
  1384.  
  1385.         Xapian::ESet::ESet(const ESet &other) 
  1386.         """
  1387.         _xapian.ESet_swiginit(self,_xapian.new_ESet(*args))
  1388.     __swig_destroy__ = _xapian.delete_ESet
  1389.     def get_ebound(*args):
  1390.         """
  1391.         A lower bound on the number of terms which are in the full set of
  1392.         results of the expand.
  1393.  
  1394.         Xapian::termcount Xapian::ESet::get_ebound() const
  1395.  
  1396.         This will be greater than or equal to size() 
  1397.         """
  1398.         return _xapian.ESet_get_ebound(*args)
  1399.  
  1400.     def size(*args):
  1401.         """
  1402.         The number of terms in this E-Set.
  1403.  
  1404.         Xapian::termcount Xapian::ESet::size() const 
  1405.         """
  1406.         return _xapian.ESet_size(*args)
  1407.  
  1408.     def empty(*args):
  1409.         """
  1410.         Test if this E-Set is empty.
  1411.  
  1412.         bool Xapian::ESet::empty() const 
  1413.         """
  1414.         return _xapian.ESet_empty(*args)
  1415.  
  1416.     def begin(*args):
  1417.         """
  1418.         Iterator for the terms in this E-Set.
  1419.  
  1420.         ESetIterator Xapian::ESet::begin() const 
  1421.         """
  1422.         return _xapian.ESet_begin(*args)
  1423.  
  1424.     def end(*args):
  1425.         """
  1426.         End iterator corresponding to begin().
  1427.  
  1428.         ESetIterator Xapian::ESet::end() const 
  1429.         """
  1430.         return _xapian.ESet_end(*args)
  1431.  
  1432.     def back(*args):
  1433.         """
  1434.         Iterator pointing to the last element of this E-Set.
  1435.  
  1436.         ESetIterator Xapian::ESet::back() const 
  1437.         """
  1438.         return _xapian.ESet_back(*args)
  1439.  
  1440.     def __str__(*args):
  1441.         """
  1442.         Return a string describing this object.
  1443.  
  1444.         std::string Xapian::ESet::get_description() const 
  1445.         """
  1446.         return _xapian.ESet___str__(*args)
  1447.  
  1448.     def get_description(*args):
  1449.         """
  1450.         Return a string describing this object.
  1451.  
  1452.         std::string Xapian::ESet::get_description() const 
  1453.         """
  1454.         return _xapian.ESet_get_description(*args)
  1455.  
  1456.     items = _swig_property(_xapian.ESet_items_get)
  1457. ESet.get_ebound = new_instancemethod(_xapian.ESet_get_ebound,None,ESet)
  1458. ESet.size = new_instancemethod(_xapian.ESet_size,None,ESet)
  1459. ESet.empty = new_instancemethod(_xapian.ESet_empty,None,ESet)
  1460. ESet.begin = new_instancemethod(_xapian.ESet_begin,None,ESet)
  1461. ESet.end = new_instancemethod(_xapian.ESet_end,None,ESet)
  1462. ESet.back = new_instancemethod(_xapian.ESet_back,None,ESet)
  1463. ESet.__str__ = new_instancemethod(_xapian.ESet___str__,None,ESet)
  1464. ESet.get_description = new_instancemethod(_xapian.ESet_get_description,None,ESet)
  1465. ESet_swigregister = _xapian.ESet_swigregister
  1466. ESet_swigregister(ESet)
  1467.  
  1468. class ESetIterator(object):
  1469.     """
  1470.     Iterate through terms in the ESet. 
  1471.     """
  1472.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  1473.     __repr__ = _swig_repr
  1474.     def __init__(self, *args): 
  1475.         """
  1476.         Copying is allowed (and is cheap).
  1477.  
  1478.         Xapian::ESetIterator::ESetIterator(const ESetIterator &other) 
  1479.         """
  1480.         _xapian.ESetIterator_swiginit(self,_xapian.new_ESetIterator(*args))
  1481.     __swig_destroy__ = _xapian.delete_ESetIterator
  1482.     def get_weight(*args):
  1483.         """
  1484.         Get the weight of the term at the current position.
  1485.  
  1486.         Xapian::weight Xapian::ESetIterator::get_weight() const 
  1487.         """
  1488.         return _xapian.ESetIterator_get_weight(*args)
  1489.  
  1490.     def __str__(*args):
  1491.         """
  1492.         Return a string describing this object.
  1493.  
  1494.         std::string Xapian::ESetIterator::get_description() const 
  1495.         """
  1496.         return _xapian.ESetIterator___str__(*args)
  1497.  
  1498.     def get_description(*args):
  1499.         """
  1500.         Return a string describing this object.
  1501.  
  1502.         std::string Xapian::ESetIterator::get_description() const 
  1503.         """
  1504.         return _xapian.ESetIterator_get_description(*args)
  1505.  
  1506. ESetIterator.get_termname = new_instancemethod(_xapian.ESetIterator_get_termname,None,ESetIterator)
  1507. ESetIterator.get_term = new_instancemethod(_xapian.ESetIterator_get_term,None,ESetIterator)
  1508. ESetIterator.next = new_instancemethod(_xapian.ESetIterator_next,None,ESetIterator)
  1509. ESetIterator.prev = new_instancemethod(_xapian.ESetIterator_prev,None,ESetIterator)
  1510. ESetIterator.equals = new_instancemethod(_xapian.ESetIterator_equals,None,ESetIterator)
  1511. ESetIterator.get_weight = new_instancemethod(_xapian.ESetIterator_get_weight,None,ESetIterator)
  1512. ESetIterator.__str__ = new_instancemethod(_xapian.ESetIterator___str__,None,ESetIterator)
  1513. ESetIterator.get_description = new_instancemethod(_xapian.ESetIterator_get_description,None,ESetIterator)
  1514. ESetIterator.__eq__ = new_instancemethod(_xapian.ESetIterator___eq__,None,ESetIterator)
  1515. ESetIterator.__ne__ = new_instancemethod(_xapian.ESetIterator___ne__,None,ESetIterator)
  1516. ESetIterator_swigregister = _xapian.ESetIterator_swigregister
  1517. ESetIterator_swigregister(ESetIterator)
  1518.  
  1519. class RSet(object):
  1520.     """
  1521.     A relevance set (R-Set).
  1522.  
  1523.     This is the set of documents which are marked as relevant, for use in
  1524.     modifying the term weights, and in performing query expansion. 
  1525.     """
  1526.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  1527.     __repr__ = _swig_repr
  1528.     def __init__(self, *args): 
  1529.         """
  1530.         Default constructor.
  1531.  
  1532.         Xapian::RSet::RSet() 
  1533.         """
  1534.         _xapian.RSet_swiginit(self,_xapian.new_RSet(*args))
  1535.     __swig_destroy__ = _xapian.delete_RSet
  1536.     def size(*args):
  1537.         """
  1538.         The number of documents in this R-Set.
  1539.  
  1540.         Xapian::doccount Xapian::RSet::size() const 
  1541.         """
  1542.         return _xapian.RSet_size(*args)
  1543.  
  1544.     def empty(*args):
  1545.         """
  1546.         Test if this R-Set is empty.
  1547.  
  1548.         bool Xapian::RSet::empty() const 
  1549.         """
  1550.         return _xapian.RSet_empty(*args)
  1551.  
  1552.     def add_document(*args):
  1553.         """
  1554.         Add a document to the relevance set.
  1555.  
  1556.         void Xapian::RSet::add_document(const Xapian::MSetIterator &i) 
  1557.         """
  1558.         return _xapian.RSet_add_document(*args)
  1559.  
  1560.     def remove_document(*args):
  1561.         """
  1562.         Remove a document from the relevance set.
  1563.  
  1564.         void Xapian::RSet::remove_document(const Xapian::MSetIterator &i) 
  1565.         """
  1566.         return _xapian.RSet_remove_document(*args)
  1567.  
  1568.     def contains(*args):
  1569.         """
  1570.         Test if a given document in the relevance set.
  1571.  
  1572.         bool Xapian::RSet::contains(const Xapian::MSetIterator &i) const 
  1573.         """
  1574.         return _xapian.RSet_contains(*args)
  1575.  
  1576.     def __str__(*args):
  1577.         """
  1578.         Return a string describing this object.
  1579.  
  1580.         std::string Xapian::RSet::get_description() const 
  1581.         """
  1582.         return _xapian.RSet___str__(*args)
  1583.  
  1584.     def get_description(*args):
  1585.         """
  1586.         Return a string describing this object.
  1587.  
  1588.         std::string Xapian::RSet::get_description() const 
  1589.         """
  1590.         return _xapian.RSet_get_description(*args)
  1591.  
  1592. RSet.size = new_instancemethod(_xapian.RSet_size,None,RSet)
  1593. RSet.empty = new_instancemethod(_xapian.RSet_empty,None,RSet)
  1594. RSet.add_document = new_instancemethod(_xapian.RSet_add_document,None,RSet)
  1595. RSet.remove_document = new_instancemethod(_xapian.RSet_remove_document,None,RSet)
  1596. RSet.contains = new_instancemethod(_xapian.RSet_contains,None,RSet)
  1597. RSet.__str__ = new_instancemethod(_xapian.RSet___str__,None,RSet)
  1598. RSet.get_description = new_instancemethod(_xapian.RSet_get_description,None,RSet)
  1599. RSet_swigregister = _xapian.RSet_swigregister
  1600. RSet_swigregister(RSet)
  1601.  
  1602. class MatchDecider(object):
  1603.     """
  1604.     Base class for matcher decision functor. 
  1605.     """
  1606.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  1607.     __repr__ = _swig_repr
  1608.     __swig_destroy__ = _xapian.delete_MatchDecider
  1609.     def __init__(self, *args): 
  1610.         if self.__class__ == MatchDecider:
  1611.             args = (None,) + args
  1612.         else:
  1613.             args = (self,) + args
  1614.         _xapian.MatchDecider_swiginit(self,_xapian.new_MatchDecider(*args))
  1615.     def __disown__(self):
  1616.         self.this.disown()
  1617.         _xapian.disown_MatchDecider(self)
  1618.         return weakref_proxy(self)
  1619. MatchDecider.__call__ = new_instancemethod(_xapian.MatchDecider___call__,None,MatchDecider)
  1620. MatchDecider_swigregister = _xapian.MatchDecider_swigregister
  1621. MatchDecider_swigregister(MatchDecider)
  1622.  
  1623. class ExpandDecider(object):
  1624.     """
  1625.     Virtual base class for expand decider functor. 
  1626.     """
  1627.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  1628.     __repr__ = _swig_repr
  1629.     __swig_destroy__ = _xapian.delete_ExpandDecider
  1630.     def __init__(self, *args): 
  1631.         if self.__class__ == ExpandDecider:
  1632.             args = (None,) + args
  1633.         else:
  1634.             args = (self,) + args
  1635.         _xapian.ExpandDecider_swiginit(self,_xapian.new_ExpandDecider(*args))
  1636.     def __disown__(self):
  1637.         self.this.disown()
  1638.         _xapian.disown_ExpandDecider(self)
  1639.         return weakref_proxy(self)
  1640. ExpandDecider.__call__ = new_instancemethod(_xapian.ExpandDecider___call__,None,ExpandDecider)
  1641. ExpandDecider_swigregister = _xapian.ExpandDecider_swigregister
  1642. ExpandDecider_swigregister(ExpandDecider)
  1643.  
  1644. class Enquire(object):
  1645.     """
  1646.     This class provides an interface to the information retrieval system
  1647.     for the purpose of searching.
  1648.  
  1649.     Databases are usually opened lazily, so exceptions may not be thrown
  1650.     where you would expect them to be. You should catch Xapian::Error
  1651.     exceptions when calling any method in Xapian::Enquire.
  1652.  
  1653.     Parameters:
  1654.     -----------
  1655.  
  1656.     Xapian::InvalidArgumentError:  will be thrown if an invalid argument
  1657.     is supplied, for example, an unknown database type. 
  1658.     """
  1659.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  1660.     __repr__ = _swig_repr
  1661.     def __init__(self, *args): 
  1662.         """
  1663.         Create a Xapian::Enquire object.
  1664.  
  1665.         Xapian::Enquire::Enquire(const Database &database, ErrorHandler
  1666.         *errorhandler_=0)
  1667.  
  1668.         This specification cannot be changed once the Xapian::Enquire is
  1669.         opened: you must create a new Xapian::Enquire object to access a
  1670.         different database, or set of databases.
  1671.  
  1672.         The database supplied must have been initialised (ie, must not be the
  1673.         result of calling the Database::Database() constructor). If you need
  1674.         to handle a situation where you have no index gracefully, a database
  1675.         created with InMemory::open() can be passed here, which represents a
  1676.         completely empty database.
  1677.  
  1678.         Parameters:
  1679.         -----------
  1680.  
  1681.         database:  Specification of the database or databases to use.
  1682.  
  1683.         errorhandler_:  A pointer to the error handler to use. Ownership of
  1684.         the object pointed to is not assumed by the Xapian::Enquire object -
  1685.         the user should delete the Xapian::ErrorHandler object after the
  1686.         Xapian::Enquire object is deleted. To use no error handler, this
  1687.         parameter should be 0.
  1688.  
  1689.         Parameters:
  1690.         -----------
  1691.  
  1692.         Xapian::InvalidArgumentError:  will be thrown if an initialised
  1693.         Database object is supplied. 
  1694.         """
  1695.         _xapian.Enquire_swiginit(self,_xapian.new_Enquire(*args))
  1696.     __swig_destroy__ = _xapian.delete_Enquire
  1697.     def set_query(*args):
  1698.         """
  1699.         Set the query to run.
  1700.  
  1701.         void Xapian::Enquire::set_query(const Xapian::Query &query,
  1702.         Xapian::termcount qlen=0)
  1703.  
  1704.         Parameters:
  1705.         -----------
  1706.  
  1707.         query:  the new query to run.
  1708.  
  1709.         qlen:  the query length to use in weight calculations - by default the
  1710.         sum of the wqf of all terms is used. 
  1711.         """
  1712.         return _xapian.Enquire_set_query(*args)
  1713.  
  1714.     def get_query(*args):
  1715.         """
  1716.         Get the query which has been set.
  1717.  
  1718.         const Xapian::Query& Xapian::Enquire::get_query() const
  1719.  
  1720.         This is only valid after set_query() has been called.
  1721.  
  1722.         Parameters:
  1723.         -----------
  1724.  
  1725.         Xapian::InvalidArgumentError:  will be thrown if query has not yet
  1726.         been set. 
  1727.         """
  1728.         return _xapian.Enquire_get_query(*args)
  1729.  
  1730.     def set_weighting_scheme(*args):
  1731.         """
  1732.         Set the weighting scheme to use for queries.
  1733.  
  1734.         void Xapian::Enquire::set_weighting_scheme(const Weight &weight_)
  1735.  
  1736.         Parameters:
  1737.         -----------
  1738.  
  1739.         weight_:  the new weighting scheme. If no weighting scheme is
  1740.         specified, the default is BM25 with the default parameters. 
  1741.         """
  1742.         return _xapian.Enquire_set_weighting_scheme(*args)
  1743.  
  1744.     def set_collapse_key(*args):
  1745.         """
  1746.         Set the collapse key to use for queries.
  1747.  
  1748.         void Xapian::Enquire::set_collapse_key(Xapian::valueno collapse_key)
  1749.  
  1750.         Parameters:
  1751.         -----------
  1752.  
  1753.         collapse_key:  value number to collapse on - at most one MSet entry
  1754.         with each particular value will be returned.
  1755.  
  1756.         The entry returned will be the best entry with that particular value
  1757.         (highest weight or highest sorting key).
  1758.  
  1759.         An example use might be to create a value for each document containing
  1760.         an MD5 hash of the document contents. Then duplicate documents from
  1761.         different sources can be eliminated at search time (it's better to
  1762.         eliminate duplicates at index time, but this may not be always be
  1763.         possible - for example the search may be over more than one Xapian
  1764.         database).
  1765.  
  1766.         Another use is to group matches in a particular category (e.g. you
  1767.         might collapse a mailing list search on the Subject: so that there's
  1768.         only one result per discussion thread). In this case you can use
  1769.         get_collapse_count() to give the user some idea how many other results
  1770.         there are. And if you index the Subject: as a boolean term as well as
  1771.         putting it in a value, you can offer a link to a non-collapsed search
  1772.         restricted to that thread using a boolean filter.
  1773.  
  1774.         (default is Xapian::BAD_VALUENO which means no collapsing). 
  1775.         """
  1776.         return _xapian.Enquire_set_collapse_key(*args)
  1777.  
  1778.     ASCENDING = _xapian.Enquire_ASCENDING
  1779.     DESCENDING = _xapian.Enquire_DESCENDING
  1780.     DONT_CARE = _xapian.Enquire_DONT_CARE
  1781.     def set_docid_order(*args):
  1782.         """
  1783.         Set the direction in which documents are ordered by document id in the
  1784.         returned MSet.
  1785.  
  1786.         void Xapian::Enquire::set_docid_order(docid_order order)
  1787.  
  1788.         This order only has an effect on documents which would otherwise have
  1789.         equal rank. For a weighted probabilistic match with no sort value,
  1790.         this means documents with equal weight. For a boolean match, with no
  1791.         sort value, this means all documents. And if a sort value is used,
  1792.         this means documents with equal sort value (and also equal weight if
  1793.         ordering on relevance after the sort).
  1794.  
  1795.         Parameters:
  1796.         -----------
  1797.  
  1798.         order:  This can be: Xapian::Enquire::ASCENDING docids sort in
  1799.         ascending order (default)
  1800.  
  1801.         Xapian::Enquire::DESCENDING docids sort in descending order
  1802.  
  1803.         Xapian::Enquire::DONT_CARE docids sort in whatever order is most
  1804.         efficient for the backend
  1805.  
  1806.         Note: If you add documents in strict date order, then a boolean search
  1807.         - i.e. set_weighting_scheme(Xapian::BoolWeight()) - with
  1808.         set_docid_order(Xapian::Enquire::DESCENDING) is a very efficient way
  1809.         to perform "sort by date, newest first". 
  1810.         """
  1811.         return _xapian.Enquire_set_docid_order(*args)
  1812.  
  1813.     def set_cutoff(*args):
  1814.         """
  1815.         Set the percentage and/or weight cutoffs.
  1816.  
  1817.         void Xapian::Enquire::set_cutoff(Xapian::percent percent_cutoff,
  1818.         Xapian::weight weight_cutoff=0)
  1819.  
  1820.         Parameters:
  1821.         -----------
  1822.  
  1823.         percent_cutoff:  Minimum percentage score for returned documents. If a
  1824.         document has a lower percentage score than this, it will not appear in
  1825.         the MSet. If your intention is to return only matches which contain
  1826.         all the terms in the query, then it's more efficient to use
  1827.         Xapian::Query::OP_AND instead of Xapian::Query::OP_OR in the query
  1828.         than to use set_cutoff(100). (default 0 => no percentage cut-off).
  1829.  
  1830.         weight_cutoff:  Minimum weight for a document to be returned. If a
  1831.         document has a lower score that this, it will not appear in the MSet.
  1832.         It is usually only possible to choose an appropriate weight for cutoff
  1833.         based on the results of a previous run of the same query; this is thus
  1834.         mainly useful for alerting operations. The other potential use is with
  1835.         a user specified weighting scheme. (default 0 => no weight cut-off).
  1836.  
  1837.         """
  1838.         return _xapian.Enquire_set_cutoff(*args)
  1839.  
  1840.     def set_sort_by_relevance(*args):
  1841.         """
  1842.         Set the sorting to be by relevance only.
  1843.  
  1844.         void Xapian::Enquire::set_sort_by_relevance()
  1845.  
  1846.         This is the default. 
  1847.         """
  1848.         return _xapian.Enquire_set_sort_by_relevance(*args)
  1849.  
  1850.     def set_sort_by_value(*args):
  1851.         """
  1852.         Set the sorting to be by value only.
  1853.  
  1854.         void Xapian::Enquire::set_sort_by_value(Xapian::valueno sort_key, bool
  1855.         ascending=true)
  1856.  
  1857.         NB sorting of values uses a string comparison, so you'll need to store
  1858.         numbers padded with leading zeros or spaces, or with the number of
  1859.         digits prepended.
  1860.  
  1861.         Parameters:
  1862.         -----------
  1863.  
  1864.         sort_key:  value number to sort on.
  1865.  
  1866.         ascending:  If true, documents values which sort higher by string
  1867.         compare are better. If false, the sort order is reversed. (default
  1868.         true) 
  1869.         """
  1870.         return _xapian.Enquire_set_sort_by_value(*args)
  1871.  
  1872.     def set_sort_by_value_then_relevance(*args):
  1873.         """
  1874.         Set the sorting to be by value, then by relevance for documents with
  1875.         the same value.
  1876.  
  1877.         void Xapian::Enquire::set_sort_by_value_then_relevance(Xapian::valueno
  1878.         sort_key, bool ascending=true)
  1879.  
  1880.         NB sorting of values uses a string comparison, so you'll need to store
  1881.         numbers padded with leading zeros or spaces, or with the number of
  1882.         digits prepended.
  1883.  
  1884.         Parameters:
  1885.         -----------
  1886.  
  1887.         sort_key:  value number to sort on.
  1888.  
  1889.         ascending:  If true, documents values which sort higher by string
  1890.         compare are better. If false, the sort order is reversed. (default
  1891.         true) 
  1892.         """
  1893.         return _xapian.Enquire_set_sort_by_value_then_relevance(*args)
  1894.  
  1895.     def set_sort_by_relevance_then_value(*args):
  1896.         """
  1897.         Set the sorting to be by relevance then value.
  1898.  
  1899.         void Xapian::Enquire::set_sort_by_relevance_then_value(Xapian::valueno
  1900.         sort_key, bool ascending=true)
  1901.  
  1902.         NB sorting of values uses a string comparison, so you'll need to store
  1903.         numbers padded with leading zeros or spaces, or with the number of
  1904.         digits prepended.
  1905.  
  1906.         Note that with the default BM25 weighting scheme parameters, non-
  1907.         identical documents will rarely have the same weight, so this setting
  1908.         will give very similar results to set_sort_by_relevance(). It becomes
  1909.         more useful with particular BM25 parameter settings (e.g.
  1910.         BM25Weight(1,0,1,0,0)) or custom weighting schemes.
  1911.  
  1912.         Parameters:
  1913.         -----------
  1914.  
  1915.         sort_key:  value number to sort on.
  1916.  
  1917.         ascending:  If true, documents values which sort higher by string
  1918.         compare are better. If false, the sort order is reversed. (default
  1919.         true) 
  1920.         """
  1921.         return _xapian.Enquire_set_sort_by_relevance_then_value(*args)
  1922.  
  1923.     def set_sort_by_key(*args):
  1924.         """
  1925.         Set the sorting to be by key generated from values only.
  1926.  
  1927.         void Xapian::Enquire::set_sort_by_key(Xapian::Sorter *sorter, bool
  1928.         ascending=true)
  1929.  
  1930.         Parameters:
  1931.         -----------
  1932.  
  1933.         sorter:  The functor to use for generating keys.
  1934.  
  1935.         ascending:  If true, documents values which sort higher by string
  1936.         compare are better. If false, the sort order is reversed. (default
  1937.         true) 
  1938.         """
  1939.         return _xapian.Enquire_set_sort_by_key(*args)
  1940.  
  1941.     def set_sort_by_key_then_relevance(*args):
  1942.         """
  1943.         Set the sorting to be by keys generated from values, then by relevance
  1944.         for documents with identical keys.
  1945.  
  1946.         void Xapian::Enquire::set_sort_by_key_then_relevance(Xapian::Sorter
  1947.         *sorter, bool ascending=true)
  1948.  
  1949.         Parameters:
  1950.         -----------
  1951.  
  1952.         sorter:  The functor to use for generating keys.
  1953.  
  1954.         ascending:  If true, keys which sort higher by string compare are
  1955.         better. If false, the sort order is reversed. (default true) 
  1956.         """
  1957.         return _xapian.Enquire_set_sort_by_key_then_relevance(*args)
  1958.  
  1959.     def set_sort_by_relevance_then_key(*args):
  1960.         """
  1961.         Set the sorting to be by relevance, then by keys generated from
  1962.         values.
  1963.  
  1964.         void Xapian::Enquire::set_sort_by_relevance_then_key(Xapian::Sorter
  1965.         *sorter, bool ascending=true)
  1966.  
  1967.         Note that with the default BM25 weighting scheme parameters, non-
  1968.         identical documents will rarely have the same weight, so this setting
  1969.         will give very similar results to set_sort_by_relevance(). It becomes
  1970.         more useful with particular BM25 parameter settings (e.g.
  1971.         BM25Weight(1,0,1,0,0)) or custom weighting schemes.
  1972.  
  1973.         Parameters:
  1974.         -----------
  1975.  
  1976.         sorter:  The functor to use for generating keys.
  1977.  
  1978.         ascending:  If true, keys which sort higher by string compare are
  1979.         better. If false, the sort order is reversed. (default true) 
  1980.         """
  1981.         return _xapian.Enquire_set_sort_by_relevance_then_key(*args)
  1982.  
  1983.     INCLUDE_QUERY_TERMS = _xapian.Enquire_INCLUDE_QUERY_TERMS
  1984.     USE_EXACT_TERMFREQ = _xapian.Enquire_USE_EXACT_TERMFREQ
  1985.     def get_mset(*args):
  1986.         """
  1987.         MSet
  1988.         Xapian::Enquire::get_mset(Xapian::doccount first, Xapian::doccount
  1989.         maxitems, const RSet *omrset, const MatchDecider *mdecider=0) const 
  1990.         """
  1991.         return _xapian.Enquire_get_mset(*args)
  1992.  
  1993.     def get_eset(*args):
  1994.         """
  1995.         Get the expand set for the given rset.
  1996.  
  1997.         ESet Xapian::Enquire::get_eset(Xapian::termcount maxitems, const RSet
  1998.         &omrset, const Xapian::ExpandDecider *edecider) const
  1999.  
  2000.         Parameters:
  2001.         -----------
  2002.  
  2003.         maxitems:  the maximum number of items to return.
  2004.  
  2005.         omrset:  the relevance set to use when performing the expand
  2006.         operation.
  2007.  
  2008.         edecider:  a decision functor to use to decide whether a given term
  2009.         should be put in the ESet
  2010.  
  2011.         An ESet object containing the results of the expand.
  2012.  
  2013.         Parameters:
  2014.         -----------
  2015.  
  2016.         Xapian::InvalidArgumentError:  See class documentation. 
  2017.         """
  2018.         return _xapian.Enquire_get_eset(*args)
  2019.  
  2020.     def get_matching_terms_begin(*args):
  2021.         """
  2022.         Get terms which match a given document, by match set item.
  2023.  
  2024.         TermIterator Xapian::Enquire::get_matching_terms_begin(const
  2025.         MSetIterator &it) const
  2026.  
  2027.         This method returns the terms in the current query which match the
  2028.         given document.
  2029.  
  2030.         If the underlying database has suitable support, using this call
  2031.         (rather than passing a Xapian::docid) will enable the system to ensure
  2032.         that the correct data is returned, and that the document has not been
  2033.         deleted or changed since the query was performed.
  2034.  
  2035.         Parameters:
  2036.         -----------
  2037.  
  2038.         it:  The iterator for which to retrieve the matching terms.
  2039.  
  2040.         An iterator returning the terms which match the document. The terms
  2041.         will be returned (as far as this makes any sense) in the same order as
  2042.         the terms in the query. Terms will not occur more than once, even if
  2043.         they do in the query.
  2044.  
  2045.         Parameters:
  2046.         -----------
  2047.  
  2048.         Xapian::InvalidArgumentError:  See class documentation.
  2049.  
  2050.         Xapian::DocNotFoundError:  The document specified could not be found
  2051.         in the database. 
  2052.         """
  2053.         return _xapian.Enquire_get_matching_terms_begin(*args)
  2054.  
  2055.     def get_matching_terms_end(*args):
  2056.         """
  2057.         End iterator corresponding to get_matching_terms_begin().
  2058.  
  2059.         TermIterator Xapian::Enquire::get_matching_terms_end(const
  2060.         MSetIterator &) const 
  2061.         """
  2062.         return _xapian.Enquire_get_matching_terms_end(*args)
  2063.  
  2064.     def __str__(*args):
  2065.         """
  2066.         Return a string describing this object.
  2067.  
  2068.         std::string Xapian::Enquire::get_description() const 
  2069.         """
  2070.         return _xapian.Enquire___str__(*args)
  2071.  
  2072.     def get_description(*args):
  2073.         """
  2074.         Return a string describing this object.
  2075.  
  2076.         std::string Xapian::Enquire::get_description() const 
  2077.         """
  2078.         return _xapian.Enquire_get_description(*args)
  2079.  
  2080. Enquire.set_query = new_instancemethod(_xapian.Enquire_set_query,None,Enquire)
  2081. Enquire.get_query = new_instancemethod(_xapian.Enquire_get_query,None,Enquire)
  2082. Enquire.set_weighting_scheme = new_instancemethod(_xapian.Enquire_set_weighting_scheme,None,Enquire)
  2083. Enquire.set_collapse_key = new_instancemethod(_xapian.Enquire_set_collapse_key,None,Enquire)
  2084. Enquire.set_docid_order = new_instancemethod(_xapian.Enquire_set_docid_order,None,Enquire)
  2085. Enquire.set_cutoff = new_instancemethod(_xapian.Enquire_set_cutoff,None,Enquire)
  2086. Enquire.set_sort_by_relevance = new_instancemethod(_xapian.Enquire_set_sort_by_relevance,None,Enquire)
  2087. Enquire.set_sort_by_value = new_instancemethod(_xapian.Enquire_set_sort_by_value,None,Enquire)
  2088. Enquire.set_sort_by_value_then_relevance = new_instancemethod(_xapian.Enquire_set_sort_by_value_then_relevance,None,Enquire)
  2089. Enquire.set_sort_by_relevance_then_value = new_instancemethod(_xapian.Enquire_set_sort_by_relevance_then_value,None,Enquire)
  2090. Enquire.set_sort_by_key = new_instancemethod(_xapian.Enquire_set_sort_by_key,None,Enquire)
  2091. Enquire.set_sort_by_key_then_relevance = new_instancemethod(_xapian.Enquire_set_sort_by_key_then_relevance,None,Enquire)
  2092. Enquire.set_sort_by_relevance_then_key = new_instancemethod(_xapian.Enquire_set_sort_by_relevance_then_key,None,Enquire)
  2093. Enquire.get_mset = new_instancemethod(_xapian.Enquire_get_mset,None,Enquire)
  2094. Enquire.get_eset = new_instancemethod(_xapian.Enquire_get_eset,None,Enquire)
  2095. Enquire.get_matching_terms_begin = new_instancemethod(_xapian.Enquire_get_matching_terms_begin,None,Enquire)
  2096. Enquire.get_matching_terms_end = new_instancemethod(_xapian.Enquire_get_matching_terms_end,None,Enquire)
  2097. Enquire.register_match_decider = new_instancemethod(_xapian.Enquire_register_match_decider,None,Enquire)
  2098. Enquire.get_matching_terms = new_instancemethod(_xapian.Enquire_get_matching_terms,None,Enquire)
  2099. Enquire.__str__ = new_instancemethod(_xapian.Enquire___str__,None,Enquire)
  2100. Enquire.get_description = new_instancemethod(_xapian.Enquire_get_description,None,Enquire)
  2101. Enquire_swigregister = _xapian.Enquire_swigregister
  2102. Enquire_swigregister(Enquire)
  2103.  
  2104. class Weight(object):
  2105.     """
  2106.     Abstract base class for weighting schemes. 
  2107.     """
  2108.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  2109.     def __init__(self): raise AttributeError, "No constructor defined"
  2110.     __repr__ = _swig_repr
  2111.     __swig_destroy__ = _xapian.delete_Weight
  2112.     def name(*args):
  2113.         """
  2114.         Name of the weighting scheme.
  2115.  
  2116.         virtual std::string Xapian::Weight::name() const=0
  2117.  
  2118.         If the subclass is called FooWeight, this should return "Foo". 
  2119.         """
  2120.         return _xapian.Weight_name(*args)
  2121.  
  2122.     def serialise(*args):
  2123.         """
  2124.         Serialise object parameters into a string.
  2125.  
  2126.         virtual std::string Xapian::Weight::serialise() const=0 
  2127.         """
  2128.         return _xapian.Weight_serialise(*args)
  2129.  
  2130.     def unserialise(*args):
  2131.         """
  2132.         Create object given string serialisation returned by serialise().
  2133.  
  2134.         virtual Weight* Xapian::Weight::unserialise(const std::string &s)
  2135.         const=0 
  2136.         """
  2137.         return _xapian.Weight_unserialise(*args)
  2138.  
  2139.     def get_sumpart(*args):
  2140.         """
  2141.         Get a weight which is part of the sum over terms being performed.
  2142.  
  2143.         virtual Xapian::weight Xapian::Weight::get_sumpart(Xapian::termcount
  2144.         wdf, Xapian::doclength len) const=0
  2145.  
  2146.         This returns a weight for a given term and document. These weights are
  2147.         summed to give a total weight for the document.
  2148.  
  2149.         Parameters:
  2150.         -----------
  2151.  
  2152.         wdf:  the within document frequency of the term.
  2153.  
  2154.         len:  the (unnormalised) document length. 
  2155.         """
  2156.         return _xapian.Weight_get_sumpart(*args)
  2157.  
  2158.     def get_maxpart(*args):
  2159.         """
  2160.         Gets the maximum value that get_sumpart() may return.
  2161.  
  2162.         virtual Xapian::weight Xapian::Weight::get_maxpart() const=0
  2163.  
  2164.         This is used in optimising searches, by having the postlist tree decay
  2165.         appropriately when parts of it can have limited, or no, further
  2166.         effect. 
  2167.         """
  2168.         return _xapian.Weight_get_maxpart(*args)
  2169.  
  2170.     def get_sumextra(*args):
  2171.         """
  2172.         Get an extra weight for a document to add to the sum calculated over
  2173.         the query terms.
  2174.  
  2175.         virtual Xapian::weight Xapian::Weight::get_sumextra(Xapian::doclength
  2176.         len) const=0
  2177.  
  2178.         This returns a weight for a given document, and is used by some
  2179.         weighting schemes to account for influence such as document length.
  2180.  
  2181.         Parameters:
  2182.         -----------
  2183.  
  2184.         len:  the (unnormalised) document length. 
  2185.         """
  2186.         return _xapian.Weight_get_sumextra(*args)
  2187.  
  2188.     def get_maxextra(*args):
  2189.         """
  2190.         Gets the maximum value that get_sumextra() may return.
  2191.  
  2192.         virtual Xapian::weight Xapian::Weight::get_maxextra() const=0
  2193.  
  2194.         This is used in optimising searches. 
  2195.         """
  2196.         return _xapian.Weight_get_maxextra(*args)
  2197.  
  2198.     def get_sumpart_needs_doclength(*args):
  2199.         """
  2200.         return false if the weight object doesn't need doclength
  2201.  
  2202.         virtual bool Xapian::Weight::get_sumpart_needs_doclength() const 
  2203.         """
  2204.         return _xapian.Weight_get_sumpart_needs_doclength(*args)
  2205.  
  2206. Weight.name = new_instancemethod(_xapian.Weight_name,None,Weight)
  2207. Weight.serialise = new_instancemethod(_xapian.Weight_serialise,None,Weight)
  2208. Weight.unserialise = new_instancemethod(_xapian.Weight_unserialise,None,Weight)
  2209. Weight.get_sumpart = new_instancemethod(_xapian.Weight_get_sumpart,None,Weight)
  2210. Weight.get_maxpart = new_instancemethod(_xapian.Weight_get_maxpart,None,Weight)
  2211. Weight.get_sumextra = new_instancemethod(_xapian.Weight_get_sumextra,None,Weight)
  2212. Weight.get_maxextra = new_instancemethod(_xapian.Weight_get_maxextra,None,Weight)
  2213. Weight.get_sumpart_needs_doclength = new_instancemethod(_xapian.Weight_get_sumpart_needs_doclength,None,Weight)
  2214. Weight_swigregister = _xapian.Weight_swigregister
  2215. Weight_swigregister(Weight)
  2216.  
  2217. class BoolWeight(Weight):
  2218.     """
  2219.     Boolean weighting scheme (everything gets 0). 
  2220.     """
  2221.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  2222.     __repr__ = _swig_repr
  2223.     def clone(*args):
  2224.         """
  2225.         Return a new weight object of this type.
  2226.  
  2227.         BoolWeight* Xapian::BoolWeight::clone() const
  2228.  
  2229.         A subclass called FooWeight taking parameters param1 and param2 should
  2230.         implement this as:
  2231.  
  2232.         virtual FooWeight * clone() const { return new FooWeight(param1,
  2233.         param2); } 
  2234.         """
  2235.         return _xapian.BoolWeight_clone(*args)
  2236.  
  2237.     def __init__(self, *args): 
  2238.         """Xapian::BoolWeight::BoolWeight() """
  2239.         _xapian.BoolWeight_swiginit(self,_xapian.new_BoolWeight(*args))
  2240.     __swig_destroy__ = _xapian.delete_BoolWeight
  2241.     def unserialise(*args):
  2242.         """
  2243.         Create object given string serialisation returned by serialise().
  2244.  
  2245.         BoolWeight* Xapian::BoolWeight::unserialise(const std::string &s)
  2246.         const 
  2247.         """
  2248.         return _xapian.BoolWeight_unserialise(*args)
  2249.  
  2250. BoolWeight.clone = new_instancemethod(_xapian.BoolWeight_clone,None,BoolWeight)
  2251. BoolWeight.unserialise = new_instancemethod(_xapian.BoolWeight_unserialise,None,BoolWeight)
  2252. BoolWeight_swigregister = _xapian.BoolWeight_swigregister
  2253. BoolWeight_swigregister(BoolWeight)
  2254.  
  2255. class BM25Weight(Weight):
  2256.     """
  2257.     BM25 weighting scheme.
  2258.  
  2259.     BM25 weighting options : The BM25 formula is \\[
  2260.     \\frac{k_{2}.n_{q}}{1+L_{d}}+\\sum_{t}\\frac{(k_{3}+1)q_{t
  2261.     }}{k_{3}+q_{t}}.\\frac{(k_{1}+1)f_{t,d}}{k_{1}((1-b)+bL_{d})+f_{t,d}
  2262.     }.w_{t} \\] where  $w_{t}$ is the termweight of term t
  2263.  
  2264.     $f_{t,d}$ is the within document frequency of term t in document d
  2265.  
  2266.     $q_{t}$ is the within query frequency of term t
  2267.  
  2268.     $L_{d}$ is the normalised length of document d
  2269.  
  2270.     $n_{q}$ is the size of the query
  2271.  
  2272.     $k_{1}$, $k_{2}$, $k_{3}$ and $b$ are user specified parameters 
  2273.     """
  2274.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  2275.     __repr__ = _swig_repr
  2276.     def __init__(self, *args): 
  2277.         """Xapian::BM25Weight::BM25Weight() """
  2278.         _xapian.BM25Weight_swiginit(self,_xapian.new_BM25Weight(*args))
  2279.     def clone(*args):
  2280.         """
  2281.         Return a new weight object of this type.
  2282.  
  2283.         BM25Weight* Xapian::BM25Weight::clone() const
  2284.  
  2285.         A subclass called FooWeight taking parameters param1 and param2 should
  2286.         implement this as:
  2287.  
  2288.         virtual FooWeight * clone() const { return new FooWeight(param1,
  2289.         param2); } 
  2290.         """
  2291.         return _xapian.BM25Weight_clone(*args)
  2292.  
  2293.     __swig_destroy__ = _xapian.delete_BM25Weight
  2294.     def unserialise(*args):
  2295.         """
  2296.         Create object given string serialisation returned by serialise().
  2297.  
  2298.         BM25Weight* Xapian::BM25Weight::unserialise(const std::string &s)
  2299.         const 
  2300.         """
  2301.         return _xapian.BM25Weight_unserialise(*args)
  2302.  
  2303. BM25Weight.clone = new_instancemethod(_xapian.BM25Weight_clone,None,BM25Weight)
  2304. BM25Weight.unserialise = new_instancemethod(_xapian.BM25Weight_unserialise,None,BM25Weight)
  2305. BM25Weight_swigregister = _xapian.BM25Weight_swigregister
  2306. BM25Weight_swigregister(BM25Weight)
  2307.  
  2308. class TradWeight(Weight):
  2309.     """
  2310.     Traditional probabilistic weighting scheme.
  2311.  
  2312.     This class implements the Traditional Probabilistic Weighting scheme,
  2313.     as described by the early papers on Probabilistic Retrieval. BM25
  2314.     generally gives better results.
  2315.  
  2316.     The Traditional weighting scheme formula is \\[
  2317.     \\sum_{t}\\frac{f_{t,d}}{k.L_{d}+f_{t,d}}.w_{t} \\] where
  2318.     $w_{t}$ is the termweight of term t
  2319.  
  2320.     $f_{t,d}$ is the within document frequency of term t in document d
  2321.  
  2322.     $L_{d}$ is the normalised length of document d
  2323.  
  2324.     $k$ is a user specifiable parameter
  2325.  
  2326.     TradWeight(k) is equivalent to BM25Weight(k, 0, 0, 1, 0), except that
  2327.     the latter returns weights (k+1) times larger. 
  2328.     """
  2329.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  2330.     __repr__ = _swig_repr
  2331.     def __init__(self, *args): 
  2332.         """Xapian::TradWeight::TradWeight() """
  2333.         _xapian.TradWeight_swiginit(self,_xapian.new_TradWeight(*args))
  2334.     def clone(*args):
  2335.         """
  2336.         Return a new weight object of this type.
  2337.  
  2338.         TradWeight* Xapian::TradWeight::clone() const
  2339.  
  2340.         A subclass called FooWeight taking parameters param1 and param2 should
  2341.         implement this as:
  2342.  
  2343.         virtual FooWeight * clone() const { return new FooWeight(param1,
  2344.         param2); } 
  2345.         """
  2346.         return _xapian.TradWeight_clone(*args)
  2347.  
  2348.     __swig_destroy__ = _xapian.delete_TradWeight
  2349.     def unserialise(*args):
  2350.         """
  2351.         Create object given string serialisation returned by serialise().
  2352.  
  2353.         TradWeight* Xapian::TradWeight::unserialise(const std::string &s)
  2354.         const 
  2355.         """
  2356.         return _xapian.TradWeight_unserialise(*args)
  2357.  
  2358. TradWeight.clone = new_instancemethod(_xapian.TradWeight_clone,None,TradWeight)
  2359. TradWeight.unserialise = new_instancemethod(_xapian.TradWeight_unserialise,None,TradWeight)
  2360. TradWeight_swigregister = _xapian.TradWeight_swigregister
  2361. TradWeight_swigregister(TradWeight)
  2362.  
  2363. class Database(object):
  2364.     """
  2365.     This class is used to access a database, or a group of databases.
  2366.  
  2367.     For searching, this class is used in conjunction with an Enquire
  2368.     object.
  2369.  
  2370.     Parameters:
  2371.     -----------
  2372.  
  2373.     InvalidArgumentError:  will be thrown if an invalid argument is
  2374.     supplied, for example, an unknown database type.
  2375.  
  2376.     DatabaseOpeningError:  may be thrown if the database cannot be opened
  2377.     (for example, a required file cannot be found).
  2378.  
  2379.     DatabaseVersionError:  may be thrown if the database is in an
  2380.     unsupported format (for example, created by a newer version of Xapian
  2381.     which uses an incompatible format). 
  2382.     """
  2383.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  2384.     __repr__ = _swig_repr
  2385.     def add_database(*args):
  2386.         """
  2387.         Add an existing database (or group of databases) to those accessed by
  2388.         this object.
  2389.  
  2390.         void Xapian::Database::add_database(const Database &database)
  2391.  
  2392.         Parameters:
  2393.         -----------
  2394.  
  2395.         database:  the database(s) to add. 
  2396.         """
  2397.         return _xapian.Database_add_database(*args)
  2398.  
  2399.     __swig_destroy__ = _xapian.delete_Database
  2400.     def __init__(self, *args): 
  2401.         """
  2402.         Copying is allowed.
  2403.  
  2404.         Xapian::Database::Database(const Database &other)
  2405.  
  2406.         The internals are reference counted, so copying is cheap. 
  2407.         """
  2408.         _xapian.Database_swiginit(self,_xapian.new_Database(*args))
  2409.     def reopen(*args):
  2410.         """
  2411.         Re-open the database.
  2412.  
  2413.         void Xapian::Database::reopen()
  2414.  
  2415.         This re-opens the database(s) to the latest available version(s). It
  2416.         can be used either to make sure the latest results are returned, or to
  2417.         recover from a Xapian::DatabaseModifiedError. 
  2418.         """
  2419.         return _xapian.Database_reopen(*args)
  2420.  
  2421.     def __str__(*args):
  2422.         """
  2423.         Return a string describing this object.
  2424.  
  2425.         virtual std::string Xapian::Database::get_description() const 
  2426.         """
  2427.         return _xapian.Database___str__(*args)
  2428.  
  2429.     def postlist_begin(*args):
  2430.         """
  2431.         An iterator pointing to the start of the postlist for a given term.
  2432.  
  2433.         PostingIterator Xapian::Database::postlist_begin(const std::string
  2434.         &tname) const
  2435.  
  2436.         If the term name is the empty string, the iterator returned will list
  2437.         all the documents in the database. Such an iterator will always return
  2438.         a WDF value of 1, since there is no obvious meaning for this quantity
  2439.         in this case. 
  2440.         """
  2441.         return _xapian.Database_postlist_begin(*args)
  2442.  
  2443.     def postlist_end(*args):
  2444.         """
  2445.         Corresponding end iterator to postlist_begin().
  2446.  
  2447.         PostingIterator Xapian::Database::postlist_end(const std::string &)
  2448.         const 
  2449.         """
  2450.         return _xapian.Database_postlist_end(*args)
  2451.  
  2452.     def termlist_begin(*args):
  2453.         """
  2454.         An iterator pointing to the start of the termlist for a given
  2455.         document.
  2456.  
  2457.         TermIterator Xapian::Database::termlist_begin(Xapian::docid did) const
  2458.  
  2459.         """
  2460.         return _xapian.Database_termlist_begin(*args)
  2461.  
  2462.     def termlist_end(*args):
  2463.         """
  2464.         Corresponding end iterator to termlist_begin().
  2465.  
  2466.         TermIterator Xapian::Database::termlist_end(Xapian::docid) const 
  2467.         """
  2468.         return _xapian.Database_termlist_end(*args)
  2469.  
  2470.     def positionlist_begin(*args):
  2471.         """
  2472.         An iterator pointing to the start of the position list for a given
  2473.         term in a given document.
  2474.  
  2475.         PositionIterator Xapian::Database::positionlist_begin(Xapian::docid
  2476.         did, const std::string &tname) const 
  2477.         """
  2478.         return _xapian.Database_positionlist_begin(*args)
  2479.  
  2480.     def positionlist_end(*args):
  2481.         """
  2482.         Corresponding end iterator to positionlist_begin().
  2483.  
  2484.         PositionIterator Xapian::Database::positionlist_end(Xapian::docid,
  2485.         const std::string &) const 
  2486.         """
  2487.         return _xapian.Database_positionlist_end(*args)
  2488.  
  2489.     def allterms_begin(*args):
  2490.         """
  2491.         An iterator which runs across all terms with a given prefix.
  2492.  
  2493.         TermIterator Xapian::Database::allterms_begin(const std::string
  2494.         &prefix) const
  2495.  
  2496.         This is functionally similar to getting an iterator with
  2497.         allterms_begin() and then calling skip_to(prefix) on that iterator to
  2498.         move to the start of the prefix, but is more convenient (because it
  2499.         detects the end of the prefixed terms), and may be more efficient than
  2500.         simply calling skip_to() after opening the iterator, particularly for
  2501.         network databases.
  2502.  
  2503.         Parameters:
  2504.         -----------
  2505.  
  2506.         prefix:  The prefix to restrict the returned terms to. 
  2507.         """
  2508.         return _xapian.Database_allterms_begin(*args)
  2509.  
  2510.     def allterms_end(*args):
  2511.         """
  2512.         Corresponding end iterator to allterms_begin(prefix).
  2513.  
  2514.         TermIterator Xapian::Database::allterms_end(const std::string &) const
  2515.  
  2516.         """
  2517.         return _xapian.Database_allterms_end(*args)
  2518.  
  2519.     def get_doccount(*args):
  2520.         """
  2521.         Get the number of documents in the database.
  2522.  
  2523.         Xapian::doccount Xapian::Database::get_doccount() const 
  2524.         """
  2525.         return _xapian.Database_get_doccount(*args)
  2526.  
  2527.     def get_lastdocid(*args):
  2528.         """
  2529.         Get the highest document id which has been used in the database.
  2530.  
  2531.         Xapian::docid Xapian::Database::get_lastdocid() const 
  2532.         """
  2533.         return _xapian.Database_get_lastdocid(*args)
  2534.  
  2535.     def get_avlength(*args):
  2536.         """
  2537.         Get the average length of the documents in the database.
  2538.  
  2539.         Xapian::doclength Xapian::Database::get_avlength() const 
  2540.         """
  2541.         return _xapian.Database_get_avlength(*args)
  2542.  
  2543.     def get_termfreq(*args):
  2544.         """
  2545.         Get the number of documents in the database indexed by a given term.
  2546.  
  2547.         Xapian::doccount Xapian::Database::get_termfreq(const std::string
  2548.         &tname) const 
  2549.         """
  2550.         return _xapian.Database_get_termfreq(*args)
  2551.  
  2552.     def term_exists(*args):
  2553.         """
  2554.         Check if a given term exists in the database.
  2555.  
  2556.         bool Xapian::Database::term_exists(const std::string &tname) const
  2557.  
  2558.         Return true if and only if the term exists in the database. This is
  2559.         the same as (get_termfreq(tname) != 0), but will often be more
  2560.         efficient. 
  2561.         """
  2562.         return _xapian.Database_term_exists(*args)
  2563.  
  2564.     def get_collection_freq(*args):
  2565.         """
  2566.         Return the total number of occurrences of the given term.
  2567.  
  2568.         Xapian::termcount Xapian::Database::get_collection_freq(const
  2569.         std::string &tname) const
  2570.  
  2571.         This is the sum of the number of occurrences of the term in each
  2572.         document it indexes: i.e., the sum of the within document frequencies
  2573.         of the term.
  2574.  
  2575.         Parameters:
  2576.         -----------
  2577.  
  2578.         tname:  The term whose collection frequency is being requested. 
  2579.         """
  2580.         return _xapian.Database_get_collection_freq(*args)
  2581.  
  2582.     def get_doclength(*args):
  2583.         """
  2584.         Get the length of a document.
  2585.  
  2586.         Xapian::doclength Xapian::Database::get_doclength(Xapian::docid did)
  2587.         const 
  2588.         """
  2589.         return _xapian.Database_get_doclength(*args)
  2590.  
  2591.     def keep_alive(*args):
  2592.         """
  2593.         Send a "keep-alive" to remote databases to stop them timing out.
  2594.  
  2595.         void Xapian::Database::keep_alive() 
  2596.         """
  2597.         return _xapian.Database_keep_alive(*args)
  2598.  
  2599.     def get_document(*args):
  2600.         """
  2601.         Get a document from the database, given its document id.
  2602.  
  2603.         Xapian::Document Xapian::Database::get_document(Xapian::docid did)
  2604.         const
  2605.  
  2606.         This method returns a Xapian::Document object which provides the
  2607.         information about a document.
  2608.  
  2609.         Parameters:
  2610.         -----------
  2611.  
  2612.         did:  The document id for which to retrieve the data.
  2613.  
  2614.         A Xapian::Document object containing the document data
  2615.  
  2616.         Parameters:
  2617.         -----------
  2618.  
  2619.         Xapian::DocNotFoundError:  The document specified could not be found
  2620.         in the database. 
  2621.         """
  2622.         return _xapian.Database_get_document(*args)
  2623.  
  2624.     def get_spelling_suggestion(*args):
  2625.         """
  2626.         Suggest a spelling correction.
  2627.  
  2628.         std::string Xapian::Database::get_spelling_suggestion(const
  2629.         std::string &word, unsigned max_edit_distance=2) const
  2630.  
  2631.         Parameters:
  2632.         -----------
  2633.  
  2634.         word:  The potentially misspelled word.
  2635.  
  2636.         max_edit_distance:  Only consider words which are at most
  2637.         max_edit_distance edits from word. An edit is a character insertion,
  2638.         deletion, or the transposition of two adjacent characters (default is
  2639.         2). 
  2640.         """
  2641.         return _xapian.Database_get_spelling_suggestion(*args)
  2642.  
  2643.     def spellings_begin(*args):
  2644.         """
  2645.         An iterator which returns all the spelling correction targets.
  2646.  
  2647.         Xapian::TermIterator Xapian::Database::spellings_begin() const
  2648.  
  2649.         This returns all the words which are considered as targets for the
  2650.         spelling correction algorithm. The frequency of each word is available
  2651.         as the term frequency of each entry in the returned iterator. 
  2652.         """
  2653.         return _xapian.Database_spellings_begin(*args)
  2654.  
  2655.     def spellings_end(*args):
  2656.         """
  2657.         Corresponding end iterator to spellings_begin().
  2658.  
  2659.         Xapian::TermIterator Xapian::Database::spellings_end() const 
  2660.         """
  2661.         return _xapian.Database_spellings_end(*args)
  2662.  
  2663.     def synonyms_begin(*args):
  2664.         """
  2665.         An iterator which returns all the synonyms for a given term.
  2666.  
  2667.         Xapian::TermIterator Xapian::Database::synonyms_begin(const
  2668.         std::string &term) const
  2669.  
  2670.         Parameters:
  2671.         -----------
  2672.  
  2673.         term:  The term to return synonyms for. 
  2674.         """
  2675.         return _xapian.Database_synonyms_begin(*args)
  2676.  
  2677.     def synonyms_end(*args):
  2678.         """
  2679.         Corresponding end iterator to synonyms_begin(term).
  2680.  
  2681.         Xapian::TermIterator Xapian::Database::synonyms_end(const std::string
  2682.         &) const 
  2683.         """
  2684.         return _xapian.Database_synonyms_end(*args)
  2685.  
  2686.     def synonym_keys_begin(*args):
  2687.         """
  2688.         An iterator which returns all terms which have synonyms.
  2689.  
  2690.         Xapian::TermIterator Xapian::Database::synonym_keys_begin(const
  2691.         std::string &prefix="") const
  2692.  
  2693.         Parameters:
  2694.         -----------
  2695.  
  2696.         prefix:  If non-empty, only terms with this prefix are returned. 
  2697.         """
  2698.         return _xapian.Database_synonym_keys_begin(*args)
  2699.  
  2700.     def synonym_keys_end(*args):
  2701.         """
  2702.         Corresponding end iterator to synonym_keys_begin(prefix).
  2703.  
  2704.         Xapian::TermIterator Xapian::Database::synonym_keys_end(const
  2705.         std::string &="") const 
  2706.         """
  2707.         return _xapian.Database_synonym_keys_end(*args)
  2708.  
  2709.     def get_metadata(*args):
  2710.         """
  2711.         Get the user-specified metadata associated with a given key.
  2712.  
  2713.         std::string Xapian::Database::get_metadata(const std::string &key)
  2714.         const
  2715.  
  2716.         User-specified metadata allows you to store arbitrary information in
  2717.         the form of (key,tag) pairs. See  WritableDatabase::set_metadata() for
  2718.         more information.
  2719.  
  2720.         When invoked on a Xapian::Database object representing multiple
  2721.         databases, currently only the metadata for the first is considered but
  2722.         this behaviour may change in the future.
  2723.  
  2724.         If there is no piece of metadata associated with the specified key, an
  2725.         empty string is returned (this applies even for backends which don't
  2726.         support metadata).
  2727.  
  2728.         Empty keys are not valid, and specifying one will cause an exception.
  2729.  
  2730.         Parameters:
  2731.         -----------
  2732.  
  2733.         key:  The key of the metadata item to access.
  2734.  
  2735.         The retrieved metadata item's value.
  2736.  
  2737.         Parameters:
  2738.         -----------
  2739.  
  2740.         Xapian::InvalidArgumentError:  will be thrown if the key supplied is
  2741.         empty.
  2742.  
  2743.         Xapian::UnimplementedError:  will be thrown if the database backend in
  2744.         use doesn't support user- specified metadata. 
  2745.         """
  2746.         return _xapian.Database_get_metadata(*args)
  2747.  
  2748.     def get_description(*args):
  2749.         """
  2750.         Return a string describing this object.
  2751.  
  2752.         virtual std::string Xapian::Database::get_description() const 
  2753.         """
  2754.         return _xapian.Database_get_description(*args)
  2755.  
  2756. Database.add_database = new_instancemethod(_xapian.Database_add_database,None,Database)
  2757. Database.reopen = new_instancemethod(_xapian.Database_reopen,None,Database)
  2758. Database.__str__ = new_instancemethod(_xapian.Database___str__,None,Database)
  2759. Database.postlist_begin = new_instancemethod(_xapian.Database_postlist_begin,None,Database)
  2760. Database.postlist_end = new_instancemethod(_xapian.Database_postlist_end,None,Database)
  2761. Database.termlist_begin = new_instancemethod(_xapian.Database_termlist_begin,None,Database)
  2762. Database.termlist_end = new_instancemethod(_xapian.Database_termlist_end,None,Database)
  2763. Database.positionlist_begin = new_instancemethod(_xapian.Database_positionlist_begin,None,Database)
  2764. Database.positionlist_end = new_instancemethod(_xapian.Database_positionlist_end,None,Database)
  2765. Database.allterms_begin = new_instancemethod(_xapian.Database_allterms_begin,None,Database)
  2766. Database.allterms_end = new_instancemethod(_xapian.Database_allterms_end,None,Database)
  2767. Database.get_doccount = new_instancemethod(_xapian.Database_get_doccount,None,Database)
  2768. Database.get_lastdocid = new_instancemethod(_xapian.Database_get_lastdocid,None,Database)
  2769. Database.get_avlength = new_instancemethod(_xapian.Database_get_avlength,None,Database)
  2770. Database.get_termfreq = new_instancemethod(_xapian.Database_get_termfreq,None,Database)
  2771. Database.term_exists = new_instancemethod(_xapian.Database_term_exists,None,Database)
  2772. Database.get_collection_freq = new_instancemethod(_xapian.Database_get_collection_freq,None,Database)
  2773. Database.get_doclength = new_instancemethod(_xapian.Database_get_doclength,None,Database)
  2774. Database.keep_alive = new_instancemethod(_xapian.Database_keep_alive,None,Database)
  2775. Database.get_document = new_instancemethod(_xapian.Database_get_document,None,Database)
  2776. Database.get_spelling_suggestion = new_instancemethod(_xapian.Database_get_spelling_suggestion,None,Database)
  2777. Database.spellings_begin = new_instancemethod(_xapian.Database_spellings_begin,None,Database)
  2778. Database.spellings_end = new_instancemethod(_xapian.Database_spellings_end,None,Database)
  2779. Database.synonyms_begin = new_instancemethod(_xapian.Database_synonyms_begin,None,Database)
  2780. Database.synonyms_end = new_instancemethod(_xapian.Database_synonyms_end,None,Database)
  2781. Database.synonym_keys_begin = new_instancemethod(_xapian.Database_synonym_keys_begin,None,Database)
  2782. Database.synonym_keys_end = new_instancemethod(_xapian.Database_synonym_keys_end,None,Database)
  2783. Database.get_metadata = new_instancemethod(_xapian.Database_get_metadata,None,Database)
  2784. Database.get_description = new_instancemethod(_xapian.Database_get_description,None,Database)
  2785. Database_swigregister = _xapian.Database_swigregister
  2786. Database_swigregister(Database)
  2787.  
  2788. class WritableDatabase(Database):
  2789.     """
  2790.     This class provides read/write access to a database. 
  2791.     """
  2792.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  2793.     __repr__ = _swig_repr
  2794.     __swig_destroy__ = _xapian.delete_WritableDatabase
  2795.     def __init__(self, *args): 
  2796.         """
  2797.         Copying is allowed.
  2798.  
  2799.         Xapian::WritableDatabase::WritableDatabase(const WritableDatabase
  2800.         &other)
  2801.  
  2802.         The internals are reference counted, so copying is cheap. 
  2803.         """
  2804.         _xapian.WritableDatabase_swiginit(self,_xapian.new_WritableDatabase(*args))
  2805.     def flush(*args):
  2806.         """
  2807.         Flush to disk any modifications made to the database.
  2808.  
  2809.         void Xapian::WritableDatabase::flush()
  2810.  
  2811.         For efficiency reasons, when performing multiple updates to a database
  2812.         it is best (indeed, almost essential) to make as many modifications as
  2813.         memory will permit in a single pass through the database. To ensure
  2814.         this, Xapian batches up modifications.
  2815.  
  2816.         Flush may be called at any time to ensure that the modifications which
  2817.         have been made are written to disk: if the flush succeeds, all the
  2818.         preceding modifications will have been written to disk.
  2819.  
  2820.         If any of the modifications fail, an exception will be thrown and the
  2821.         database will be left in a state in which each separate addition,
  2822.         replacement or deletion operation has either been fully performed or
  2823.         not performed at all: it is then up to the application to work out
  2824.         which operations need to be repeated.
  2825.  
  2826.         It's not valid to call flush within a transaction.
  2827.  
  2828.         Beware of calling flush too frequently: this will have a severe
  2829.         performance cost.
  2830.  
  2831.         Note that flush need not be called explicitly: it will be called
  2832.         automatically when the database is closed, or when a sufficient number
  2833.         of modifications have been made.
  2834.  
  2835.         Parameters:
  2836.         -----------
  2837.  
  2838.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  2839.         modifying the database.
  2840.  
  2841.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  2842.         corrupt state.
  2843.  
  2844.         Xapian::DatabaseLockError:  will be thrown if a lock couldn't be
  2845.         acquired on the database. 
  2846.         """
  2847.         return _xapian.WritableDatabase_flush(*args)
  2848.  
  2849.     def begin_transaction(*args):
  2850.         """
  2851.         Begin a transaction.
  2852.  
  2853.         void Xapian::WritableDatabase::begin_transaction(bool flushed=true)
  2854.  
  2855.         In Xapian a transaction is a group of modifications to the database
  2856.         which are linked such that either all will be applied simultaneously
  2857.         or none will be applied at all. Even in the case of a power failure,
  2858.         this characteristic should be preserved (as long as the filesystem
  2859.         isn't corrupted, etc).
  2860.  
  2861.         A transaction is started with begin_transaction() and can either be
  2862.         committed by calling commit_transaction() or aborted by calling
  2863.         cancel_transaction().
  2864.  
  2865.         By default, a transaction implicitly calls flush before and after so
  2866.         that the modifications stand and fall without affecting modifications
  2867.         before or after.
  2868.  
  2869.         The downside of this flushing is that small transactions cause
  2870.         modifications to be frequently flushed which can harm indexing
  2871.         performance in the same way that explicitly calling flush frequently
  2872.         can.
  2873.  
  2874.         If you're applying atomic groups of changes and only wish to ensure
  2875.         that each group is either applied or not applied, then you can prevent
  2876.         the automatic flush before and after the transaction by starting the
  2877.         transaction with begin_transaction(false). However, if
  2878.         cancel_transaction is called (or if commit_transaction isn't called
  2879.         before the WritableDatabase object is destroyed) then any changes
  2880.         which were pending before the transaction began will also be
  2881.         discarded.
  2882.  
  2883.         Transactions aren't currently supported by the InMemory backend.
  2884.  
  2885.         Parameters:
  2886.         -----------
  2887.  
  2888.         Xapian::UnimplementedError:  will be thrown if transactions are not
  2889.         available for this database type.
  2890.  
  2891.         Xapian::InvalidOperationError:  will be thrown if this is called at an
  2892.         invalid time, such as when a transaction is already in progress. 
  2893.         """
  2894.         return _xapian.WritableDatabase_begin_transaction(*args)
  2895.  
  2896.     def commit_transaction(*args):
  2897.         """
  2898.         Complete the transaction currently in progress.
  2899.  
  2900.         void Xapian::WritableDatabase::commit_transaction()
  2901.  
  2902.         If this method completes successfully and this is a flushed
  2903.         transaction, all the database modifications made during the
  2904.         transaction will have been committed to the database.
  2905.  
  2906.         If an error occurs, an exception will be thrown, and none of the
  2907.         modifications made to the database during the transaction will have
  2908.         been applied to the database.
  2909.  
  2910.         In all cases the transaction will no longer be in progress.
  2911.  
  2912.         Parameters:
  2913.         -----------
  2914.  
  2915.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  2916.         modifying the database.
  2917.  
  2918.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  2919.         corrupt state.
  2920.  
  2921.         Xapian::InvalidOperationError:  will be thrown if a transaction is not
  2922.         currently in progress.
  2923.  
  2924.         Xapian::UnimplementedError:  will be thrown if transactions are not
  2925.         available for this database type. 
  2926.         """
  2927.         return _xapian.WritableDatabase_commit_transaction(*args)
  2928.  
  2929.     def cancel_transaction(*args):
  2930.         """
  2931.         Abort the transaction currently in progress, discarding the potential
  2932.         modifications made to the database.
  2933.  
  2934.         void Xapian::WritableDatabase::cancel_transaction()
  2935.  
  2936.         If an error occurs in this method, an exception will be thrown, but
  2937.         the transaction will be cancelled anyway.
  2938.  
  2939.         Parameters:
  2940.         -----------
  2941.  
  2942.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  2943.         modifying the database.
  2944.  
  2945.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  2946.         corrupt state.
  2947.  
  2948.         Xapian::InvalidOperationError:  will be thrown if a transaction is not
  2949.         currently in progress.
  2950.  
  2951.         Xapian::UnimplementedError:  will be thrown if transactions are not
  2952.         available for this database type. 
  2953.         """
  2954.         return _xapian.WritableDatabase_cancel_transaction(*args)
  2955.  
  2956.     def add_document(*args):
  2957.         """
  2958.         Add a new document to the database.
  2959.  
  2960.         Xapian::docid Xapian::WritableDatabase::add_document(const
  2961.         Xapian::Document &document)
  2962.  
  2963.         This method adds the specified document to the database, returning a
  2964.         newly allocated document ID. Automatically allocated document IDs come
  2965.         from a per-database monotonically increasing counter, so IDs from
  2966.         deleted documents won't be reused.
  2967.  
  2968.         If you want to specify the document ID to be used, you should call
  2969.         replace_document() instead.
  2970.  
  2971.         Note that changes to the database won't be immediately committed to
  2972.         disk; see flush() for more details.
  2973.  
  2974.         As with all database modification operations, the effect is atomic:
  2975.         the document will either be fully added, or the document fails to be
  2976.         added and an exception is thrown (possibly at a later time when flush
  2977.         is called or the database is closed).
  2978.  
  2979.         Parameters:
  2980.         -----------
  2981.  
  2982.         document:  The new document to be added.
  2983.  
  2984.         The document ID of the newly added document.
  2985.  
  2986.         Parameters:
  2987.         -----------
  2988.  
  2989.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  2990.         writing to the database.
  2991.  
  2992.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  2993.         corrupt state. 
  2994.         """
  2995.         return _xapian.WritableDatabase_add_document(*args)
  2996.  
  2997.     def delete_document(*args):
  2998.         """
  2999.         Delete any documents indexed by a term from the database.
  3000.  
  3001.         void Xapian::WritableDatabase::delete_document(const std::string
  3002.         &unique_term)
  3003.  
  3004.         This method removes any documents indexed by the specified term from
  3005.         the database.
  3006.  
  3007.         A major use is for convenience when UIDs from another system are
  3008.         mapped to terms in Xapian, although this method has other uses (for
  3009.         example, you could add a "deletion date" term to documents at index
  3010.         time and use this method to delete all documents due for deletion on a
  3011.         particular date).
  3012.  
  3013.         Parameters:
  3014.         -----------
  3015.  
  3016.         unique_term:  The term to remove references to.
  3017.  
  3018.         Parameters:
  3019.         -----------
  3020.  
  3021.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  3022.         writing to the database.
  3023.  
  3024.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  3025.         corrupt state. 
  3026.         """
  3027.         return _xapian.WritableDatabase_delete_document(*args)
  3028.  
  3029.     def replace_document(*args):
  3030.         """
  3031.         Replace any documents matching a term.
  3032.  
  3033.         Xapian::docid Xapian::WritableDatabase::replace_document(const
  3034.         std::string &unique_term, const Xapian::Document &document)
  3035.  
  3036.         This method replaces any documents indexed by the specified term with
  3037.         the specified document. If any documents are indexed by the term, the
  3038.         lowest document ID will be used for the document, otherwise a new
  3039.         document ID will be generated as for add_document.
  3040.  
  3041.         The intended use is to allow UIDs from another system to easily be
  3042.         mapped to terms in Xapian, although this method probably has other
  3043.         uses.
  3044.  
  3045.         Note that changes to the database won't be immediately committed to
  3046.         disk; see flush() for more details.
  3047.  
  3048.         As with all database modification operations, the effect is atomic:
  3049.         the document(s) will either be fully replaced, or the document(s) fail
  3050.         to be replaced and an exception is thrown (possibly at a later time
  3051.         when flush is called or the database is closed).
  3052.  
  3053.         Parameters:
  3054.         -----------
  3055.  
  3056.         unique_term:  The "unique" term.
  3057.  
  3058.         document:  The new document.
  3059.  
  3060.         The document ID that document was given.
  3061.  
  3062.         Parameters:
  3063.         -----------
  3064.  
  3065.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  3066.         writing to the database.
  3067.  
  3068.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  3069.         corrupt state. 
  3070.         """
  3071.         return _xapian.WritableDatabase_replace_document(*args)
  3072.  
  3073.     def add_spelling(*args):
  3074.         """
  3075.         Add a word to the spelling dictionary.
  3076.  
  3077.         void Xapian::WritableDatabase::add_spelling(const std::string &word,
  3078.         Xapian::termcount freqinc=1) const
  3079.  
  3080.         If the word is already present, its frequency is increased.
  3081.  
  3082.         Parameters:
  3083.         -----------
  3084.  
  3085.         word:  The word to add.
  3086.  
  3087.         freqinc:  How much to increase its frequency by (default 1). 
  3088.         """
  3089.         return _xapian.WritableDatabase_add_spelling(*args)
  3090.  
  3091.     def remove_spelling(*args):
  3092.         """
  3093.         Remove a word from the spelling dictionary.
  3094.  
  3095.         void Xapian::WritableDatabase::remove_spelling(const std::string
  3096.         &word, Xapian::termcount freqdec=1) const
  3097.  
  3098.         The word's frequency is decreased, and if would become zero or less
  3099.         then the word is removed completely.
  3100.  
  3101.         Parameters:
  3102.         -----------
  3103.  
  3104.         word:  The word to remove.
  3105.  
  3106.         freqdec:  How much to decrease its frequency by (default 1). 
  3107.         """
  3108.         return _xapian.WritableDatabase_remove_spelling(*args)
  3109.  
  3110.     def add_synonym(*args):
  3111.         """
  3112.         Add a synonym for a term.
  3113.  
  3114.         void Xapian::WritableDatabase::add_synonym(const std::string &term,
  3115.         const std::string &synonym) const
  3116.  
  3117.         If synonym is already a synonym for term, then no action is taken. 
  3118.         """
  3119.         return _xapian.WritableDatabase_add_synonym(*args)
  3120.  
  3121.     def remove_synonym(*args):
  3122.         """
  3123.         Remove a synonym for a term.
  3124.  
  3125.         void Xapian::WritableDatabase::remove_synonym(const std::string &term,
  3126.         const std::string &synonym) const
  3127.  
  3128.         If synonym isn't a synonym for term, then no action is taken. 
  3129.         """
  3130.         return _xapian.WritableDatabase_remove_synonym(*args)
  3131.  
  3132.     def clear_synonyms(*args):
  3133.         """
  3134.         Remove all synonyms for a term.
  3135.  
  3136.         void Xapian::WritableDatabase::clear_synonyms(const std::string &term)
  3137.         const
  3138.  
  3139.         If term has no synonyms, no action is taken. 
  3140.         """
  3141.         return _xapian.WritableDatabase_clear_synonyms(*args)
  3142.  
  3143.     def set_metadata(*args):
  3144.         """
  3145.         Set the user-specified metadata associated with a given key.
  3146.  
  3147.         void Xapian::WritableDatabase::set_metadata(const std::string &key,
  3148.         const std::string &value)
  3149.  
  3150.         This method sets the metadata value associated with a given key. If
  3151.         there is already a metadata value stored in the database with the same
  3152.         key, the old value is replaced. If you want to delete an existing item
  3153.         of metadata, just set its value to the empty string.
  3154.  
  3155.         User-specified metadata allows you to store arbitrary information in
  3156.         the form of (key,tag) pairs.
  3157.  
  3158.         There's no hard limit on the number of metadata items, or the size of
  3159.         the metadata values. Metadata keys have a limited length, which
  3160.         depends on the backend. We recommend limiting them to 200 bytes. Empty
  3161.         keys are not valid, and specifying one will cause an exception.
  3162.  
  3163.         Metadata modifications are committed to disk in the same way as
  3164.         modifications to the documents in the database are: i.e.,
  3165.         modifications are atomic, and won't be committed to disk immediately
  3166.         (see flush() for more details). This allows metadata to be used to
  3167.         link databases with versioned external resources by storing the
  3168.         appropriate version number in a metadata item.
  3169.  
  3170.         You can also use the metadata to store arbitrary extra information
  3171.         associated with terms, documents, or postings by encoding the termname
  3172.         and/or document id into the metadata key.
  3173.  
  3174.         Parameters:
  3175.         -----------
  3176.  
  3177.         key:  The key of the metadata item to set.
  3178.  
  3179.         value:  The value of the metadata item to set.
  3180.  
  3181.         Parameters:
  3182.         -----------
  3183.  
  3184.         Xapian::DatabaseError:  will be thrown if a problem occurs while
  3185.         writing to the database.
  3186.  
  3187.         Xapian::DatabaseCorruptError:  will be thrown if the database is in a
  3188.         corrupt state.
  3189.  
  3190.         Xapian::InvalidArgumentError:  will be thrown if the key supplied is
  3191.         empty. 
  3192.         """
  3193.         return _xapian.WritableDatabase_set_metadata(*args)
  3194.  
  3195.     def __str__(*args):
  3196.         """
  3197.         Return a string describing this object.
  3198.  
  3199.         std::string Xapian::WritableDatabase::get_description() const 
  3200.         """
  3201.         return _xapian.WritableDatabase___str__(*args)
  3202.  
  3203.     def get_description(*args):
  3204.         """
  3205.         Return a string describing this object.
  3206.  
  3207.         std::string Xapian::WritableDatabase::get_description() const 
  3208.         """
  3209.         return _xapian.WritableDatabase_get_description(*args)
  3210.  
  3211. WritableDatabase.flush = new_instancemethod(_xapian.WritableDatabase_flush,None,WritableDatabase)
  3212. WritableDatabase.begin_transaction = new_instancemethod(_xapian.WritableDatabase_begin_transaction,None,WritableDatabase)
  3213. WritableDatabase.commit_transaction = new_instancemethod(_xapian.WritableDatabase_commit_transaction,None,WritableDatabase)
  3214. WritableDatabase.cancel_transaction = new_instancemethod(_xapian.WritableDatabase_cancel_transaction,None,WritableDatabase)
  3215. WritableDatabase.add_document = new_instancemethod(_xapian.WritableDatabase_add_document,None,WritableDatabase)
  3216. WritableDatabase.delete_document = new_instancemethod(_xapian.WritableDatabase_delete_document,None,WritableDatabase)
  3217. WritableDatabase.replace_document = new_instancemethod(_xapian.WritableDatabase_replace_document,None,WritableDatabase)
  3218. WritableDatabase.add_spelling = new_instancemethod(_xapian.WritableDatabase_add_spelling,None,WritableDatabase)
  3219. WritableDatabase.remove_spelling = new_instancemethod(_xapian.WritableDatabase_remove_spelling,None,WritableDatabase)
  3220. WritableDatabase.add_synonym = new_instancemethod(_xapian.WritableDatabase_add_synonym,None,WritableDatabase)
  3221. WritableDatabase.remove_synonym = new_instancemethod(_xapian.WritableDatabase_remove_synonym,None,WritableDatabase)
  3222. WritableDatabase.clear_synonyms = new_instancemethod(_xapian.WritableDatabase_clear_synonyms,None,WritableDatabase)
  3223. WritableDatabase.set_metadata = new_instancemethod(_xapian.WritableDatabase_set_metadata,None,WritableDatabase)
  3224. WritableDatabase.__str__ = new_instancemethod(_xapian.WritableDatabase___str__,None,WritableDatabase)
  3225. WritableDatabase.get_description = new_instancemethod(_xapian.WritableDatabase_get_description,None,WritableDatabase)
  3226. WritableDatabase_swigregister = _xapian.WritableDatabase_swigregister
  3227. WritableDatabase_swigregister(WritableDatabase)
  3228.  
  3229. DB_CREATE_OR_OPEN = _xapian.DB_CREATE_OR_OPEN
  3230. DB_CREATE = _xapian.DB_CREATE
  3231. DB_CREATE_OR_OVERWRITE = _xapian.DB_CREATE_OR_OVERWRITE
  3232. DB_OPEN = _xapian.DB_OPEN
  3233.  
  3234. def open_stub(*args):
  3235.   """
  3236.     Construct a Database object for a stub database file.
  3237.  
  3238.     XAPIAN_VISIBILITY_DEFAULT Database Xapian::Auto::open_stub(const
  3239.     std::string &file)
  3240.  
  3241.     The stub database file contains serialised parameters for one or more
  3242.     databases.
  3243.  
  3244.     Parameters:
  3245.     -----------
  3246.  
  3247.     file:  pathname of the stub database file. 
  3248.     """
  3249.   return _xapian.open_stub(*args)
  3250.  
  3251. def inmemory_open(*args):
  3252.   """
  3253.     Construct a Database object for update access to an InMemory database.
  3254.  
  3255.     XAPIAN_VISIBILITY_DEFAULT WritableDatabase Xapian::InMemory::open()
  3256.  
  3257.     A new, empty database is created for each call. 
  3258.     """
  3259.   return _xapian.inmemory_open(*args)
  3260. class Query(object):
  3261.     """
  3262.     Class representing a query.
  3263.  
  3264.     Queries are represented as a tree of objects. 
  3265.     """
  3266.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  3267.     __repr__ = _swig_repr
  3268.     OP_AND = _xapian.Query_OP_AND
  3269.     OP_OR = _xapian.Query_OP_OR
  3270.     OP_AND_NOT = _xapian.Query_OP_AND_NOT
  3271.     OP_XOR = _xapian.Query_OP_XOR
  3272.     OP_AND_MAYBE = _xapian.Query_OP_AND_MAYBE
  3273.     OP_FILTER = _xapian.Query_OP_FILTER
  3274.     OP_NEAR = _xapian.Query_OP_NEAR
  3275.     OP_PHRASE = _xapian.Query_OP_PHRASE
  3276.     OP_VALUE_RANGE = _xapian.Query_OP_VALUE_RANGE
  3277.     OP_SCALE_WEIGHT = _xapian.Query_OP_SCALE_WEIGHT
  3278.     OP_ELITE_SET = _xapian.Query_OP_ELITE_SET
  3279.     OP_VALUE_GE = _xapian.Query_OP_VALUE_GE
  3280.     OP_VALUE_LE = _xapian.Query_OP_VALUE_LE
  3281.     def __init__(self, *args): 
  3282.         """
  3283.         Construct a value comparison query on a document value.
  3284.  
  3285.         Xapian::Query::Query(Query::op op_, Xapian::valueno valno, const
  3286.         std::string &value)
  3287.  
  3288.         This query matches those documents which have a value stored in the
  3289.         slot given by valno which compares, as specified by the operator, to
  3290.         value.
  3291.  
  3292.         Parameters:
  3293.         -----------
  3294.  
  3295.         op_:  The operator to use for the query. Currently, must be
  3296.         OP_VALUE_GE or OP_VALUE_LE.
  3297.  
  3298.         valno:  The slot number to get the value from.
  3299.  
  3300.         value:  The value to compare. 
  3301.         """
  3302.         _xapian.Query_swiginit(self,_xapian.new_Query(*args))
  3303.     __swig_destroy__ = _xapian.delete_Query
  3304.     def get_length(*args):
  3305.         """
  3306.         Get the length of the query, used by some ranking formulae.
  3307.  
  3308.         Xapian::termcount Xapian::Query::get_length() const
  3309.  
  3310.         This value is calculated automatically - if you want to override it
  3311.         you can pass a different value to Enquire::set_query(). 
  3312.         """
  3313.         return _xapian.Query_get_length(*args)
  3314.  
  3315.     def get_terms_begin(*args):
  3316.         """
  3317.         Return a Xapian::TermIterator returning all the terms in the query, in
  3318.         order of termpos.
  3319.  
  3320.         TermIterator Xapian::Query::get_terms_begin() const
  3321.  
  3322.         If multiple terms have the same term position, their order is
  3323.         unspecified. Duplicates (same term and termpos) will be removed. 
  3324.         """
  3325.         return _xapian.Query_get_terms_begin(*args)
  3326.  
  3327.     def get_terms_end(*args):
  3328.         """
  3329.         Return a Xapian::TermIterator to the end of the list of terms in the
  3330.         query.
  3331.  
  3332.         TermIterator Xapian::Query::get_terms_end() const 
  3333.         """
  3334.         return _xapian.Query_get_terms_end(*args)
  3335.  
  3336.     def empty(*args):
  3337.         """
  3338.         Test if the query is empty (i.e.
  3339.  
  3340.         bool Xapian::Query::empty() const
  3341.  
  3342.         was constructed using the default ctor or with an empty iterator
  3343.         ctor). 
  3344.         """
  3345.         return _xapian.Query_empty(*args)
  3346.  
  3347.     def __str__(*args):
  3348.         """
  3349.         Return a string describing this object.
  3350.  
  3351.         std::string Xapian::Query::get_description() const 
  3352.         """
  3353.         return _xapian.Query___str__(*args)
  3354.  
  3355.     def get_description(*args):
  3356.         """
  3357.         Return a string describing this object.
  3358.  
  3359.         std::string Xapian::Query::get_description() const 
  3360.         """
  3361.         return _xapian.Query_get_description(*args)
  3362.  
  3363. Query.get_length = new_instancemethod(_xapian.Query_get_length,None,Query)
  3364. Query.get_terms_begin = new_instancemethod(_xapian.Query_get_terms_begin,None,Query)
  3365. Query.get_terms_end = new_instancemethod(_xapian.Query_get_terms_end,None,Query)
  3366. Query.empty = new_instancemethod(_xapian.Query_empty,None,Query)
  3367. Query.__str__ = new_instancemethod(_xapian.Query___str__,None,Query)
  3368. Query.get_description = new_instancemethod(_xapian.Query_get_description,None,Query)
  3369. Query_swigregister = _xapian.Query_swigregister
  3370. Query_swigregister(Query)
  3371. quartz_open = _xapian.quartz_open
  3372.  
  3373. def flint_open(*args):
  3374.   """
  3375.     Construct a Database object for update access to a Flint database.
  3376.  
  3377.     XAPIAN_VISIBILITY_DEFAULT WritableDatabase Xapian::Flint::open(const
  3378.     std::string &dir, int action, int block_size=8192)
  3379.  
  3380.     Parameters:
  3381.     -----------
  3382.  
  3383.     dir:  pathname of the directory containing the database.
  3384.  
  3385.     action:  determines handling of existing/non-existing database:
  3386.     Xapian::DB_CREATE fail if database already exist, otherwise create new
  3387.     database.
  3388.  
  3389.     Xapian::DB_CREATE_OR_OPEN open existing database, or create new
  3390.     database if none exists.
  3391.  
  3392.     Xapian::DB_CREATE_OR_OVERWRITE overwrite existing database, or create
  3393.     new database if none exists.
  3394.  
  3395.     Xapian::DB_OPEN open existing database, failing if none exists.
  3396.  
  3397.     block_size:  the Btree blocksize to use (in bytes), which must be a
  3398.     power of two between 2048 and 65536 (inclusive). The default (also
  3399.     used if an invalid value if passed) is 8192 bytes. This parameter is
  3400.     ignored when opening an existing database. 
  3401.     """
  3402.   return _xapian.flint_open(*args)
  3403.  
  3404. def remote_open(*args):
  3405.   """
  3406.     Construct a Database object for read-only access to a remote database
  3407.     accessed via a program.
  3408.  
  3409.     XAPIAN_VISIBILITY_DEFAULT Database Xapian::Remote::open(const
  3410.     std::string &program, const std::string &args, Xapian::timeout
  3411.     timeout=10000)
  3412.  
  3413.     Access to the remote database is done by running an external program
  3414.     and communicating with it on stdin/stdout.
  3415.  
  3416.     Parameters:
  3417.     -----------
  3418.  
  3419.     program:  the external program to run.
  3420.  
  3421.     args:  space-separated list of arguments to pass to program.
  3422.  
  3423.     timeout:  timeout in milliseconds. If this timeout is exceeded for any
  3424.     individual operation on the remote database then
  3425.     Xapian::NetworkTimeoutError is thrown. A timeout of 0 means don't
  3426.     timeout. (Default is 10000ms, which is 10 seconds). 
  3427.     """
  3428.   return _xapian.remote_open(*args)
  3429.  
  3430. def remote_open_writable(*args):
  3431.   """
  3432.     Construct a WritableDatabase object for update access to a remote
  3433.     database accessed via a program.
  3434.  
  3435.     XAPIAN_VISIBILITY_DEFAULT WritableDatabase
  3436.     Xapian::Remote::open_writable(const std::string &program, const
  3437.     std::string &args, Xapian::timeout timeout=0)
  3438.  
  3439.     Access to the remote database is done by running an external program
  3440.     and communicating with it on stdin/stdout.
  3441.  
  3442.     Parameters:
  3443.     -----------
  3444.  
  3445.     program:  the external program to run.
  3446.  
  3447.     args:  space-separated list of arguments to pass to program.
  3448.  
  3449.     timeout:  timeout in milliseconds. If this timeout is exceeded for any
  3450.     individual operation on the remote database then
  3451.     Xapian::NetworkTimeoutError is thrown. (Default is 0, which means
  3452.     don't timeout). 
  3453.     """
  3454.   return _xapian.remote_open_writable(*args)
  3455.  
  3456. class Stopper(object):
  3457.     """
  3458.     Base class for stop-word decision functor. 
  3459.     """
  3460.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  3461.     __repr__ = _swig_repr
  3462.     __swig_destroy__ = _xapian.delete_Stopper
  3463.     def __str__(*args):
  3464.         """
  3465.         Return a string describing this object.
  3466.  
  3467.         virtual std::string Xapian::Stopper::get_description() const 
  3468.         """
  3469.         return _xapian.Stopper___str__(*args)
  3470.  
  3471.     def get_description(*args):
  3472.         """
  3473.         Return a string describing this object.
  3474.  
  3475.         virtual std::string Xapian::Stopper::get_description() const 
  3476.         """
  3477.         return _xapian.Stopper_get_description(*args)
  3478.  
  3479.     def __init__(self, *args): 
  3480.         if self.__class__ == Stopper:
  3481.             args = (None,) + args
  3482.         else:
  3483.             args = (self,) + args
  3484.         _xapian.Stopper_swiginit(self,_xapian.new_Stopper(*args))
  3485.     def __disown__(self):
  3486.         self.this.disown()
  3487.         _xapian.disown_Stopper(self)
  3488.         return weakref_proxy(self)
  3489. Stopper.__call__ = new_instancemethod(_xapian.Stopper___call__,None,Stopper)
  3490. Stopper.__str__ = new_instancemethod(_xapian.Stopper___str__,None,Stopper)
  3491. Stopper.get_description = new_instancemethod(_xapian.Stopper_get_description,None,Stopper)
  3492. Stopper_swigregister = _xapian.Stopper_swigregister
  3493. Stopper_swigregister(Stopper)
  3494.  
  3495. class SimpleStopper(Stopper):
  3496.     """
  3497.     Simple implementation of Stopper class - this will suit most users. 
  3498.     """
  3499.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  3500.     __repr__ = _swig_repr
  3501.     def __init__(self, *args): 
  3502.         """
  3503.         Initialise from a pair of iterators.
  3504.  
  3505.         Xapian::SimpleStopper::SimpleStopper(Iterator begin, Iterator end) 
  3506.         """
  3507.         _xapian.SimpleStopper_swiginit(self,_xapian.new_SimpleStopper(*args))
  3508.     def add(*args):
  3509.         """
  3510.         Add a single stop word.
  3511.  
  3512.         void Xapian::SimpleStopper::add(const std::string &word) 
  3513.         """
  3514.         return _xapian.SimpleStopper_add(*args)
  3515.  
  3516.     __swig_destroy__ = _xapian.delete_SimpleStopper
  3517. SimpleStopper.add = new_instancemethod(_xapian.SimpleStopper_add,None,SimpleStopper)
  3518. SimpleStopper_swigregister = _xapian.SimpleStopper_swigregister
  3519. SimpleStopper_swigregister(SimpleStopper)
  3520.  
  3521. class ValueRangeProcessor(object):
  3522.     """
  3523.     Base class for value range processors. 
  3524.     """
  3525.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  3526.     __repr__ = _swig_repr
  3527.     __swig_destroy__ = _xapian.delete_ValueRangeProcessor
  3528.     def __init__(self, *args): 
  3529.         if self.__class__ == ValueRangeProcessor:
  3530.             args = (None,) + args
  3531.         else:
  3532.             args = (self,) + args
  3533.         _xapian.ValueRangeProcessor_swiginit(self,_xapian.new_ValueRangeProcessor(*args))
  3534.     def __disown__(self):
  3535.         self.this.disown()
  3536.         _xapian.disown_ValueRangeProcessor(self)
  3537.         return weakref_proxy(self)
  3538. ValueRangeProcessor.__call__ = new_instancemethod(_xapian.ValueRangeProcessor___call__,None,ValueRangeProcessor)
  3539. ValueRangeProcessor.__call = new_instancemethod(_xapian.ValueRangeProcessor___call,None,ValueRangeProcessor)
  3540. ValueRangeProcessor_swigregister = _xapian.ValueRangeProcessor_swigregister
  3541. ValueRangeProcessor_swigregister(ValueRangeProcessor)
  3542.  
  3543. class StringValueRangeProcessor(ValueRangeProcessor):
  3544.     """
  3545.     Handle a string range.
  3546.  
  3547.     The end points can be any strings. 
  3548.     """
  3549.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  3550.     __repr__ = _swig_repr
  3551.     def __init__(self, *args): 
  3552.         """
  3553.         Constructor.
  3554.  
  3555.         Xapian::StringValueRangeProcessor::StringValueRangeProcessor(Xapian::v
  3556.         alueno valno_)
  3557.  
  3558.         Parameters:
  3559.         -----------
  3560.  
  3561.         valno_:  The value number to return from operator(). 
  3562.         """
  3563.         _xapian.StringValueRangeProcessor_swiginit(self,_xapian.new_StringValueRangeProcessor(*args))
  3564.     __swig_destroy__ = _xapian.delete_StringValueRangeProcessor
  3565. StringValueRangeProcessor_swigregister = _xapian.StringValueRangeProcessor_swigregister
  3566. StringValueRangeProcessor_swigregister(StringValueRangeProcessor)
  3567.  
  3568. class DateValueRangeProcessor(ValueRangeProcessor):
  3569.     """
  3570.     Handle a date range.
  3571.  
  3572.     Begin and end must be dates in a recognised format. 
  3573.     """
  3574.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  3575.     __repr__ = _swig_repr
  3576.     def __init__(self, *args): 
  3577.         """
  3578.         Constructor.
  3579.  
  3580.         Xapian::DateValueRangeProcessor::DateValueRangeProcessor(Xapian::value
  3581.         no valno_, bool prefer_mdy_=false, int epoch_year_=1970)
  3582.  
  3583.         Parameters:
  3584.         -----------
  3585.  
  3586.         valno_:  The value number to return from operator().
  3587.  
  3588.         prefer_mdy_:  Should ambiguous dates be interpreted as month/day/year
  3589.         rather than day/month/year? (default: false)
  3590.  
  3591.         epoch_year_:  Year to use as the epoch for dates with 2 digit years
  3592.         (default: 1970, so 1/1/69 is 2069 while 1/1/70 is 1970). 
  3593.         """
  3594.         _xapian.DateValueRangeProcessor_swiginit(self,_xapian.new_DateValueRangeProcessor(*args))
  3595.     __swig_destroy__ = _xapian.delete_DateValueRangeProcessor
  3596. DateValueRangeProcessor_swigregister = _xapian.DateValueRangeProcessor_swigregister
  3597. DateValueRangeProcessor_swigregister(DateValueRangeProcessor)
  3598.  
  3599. class NumberValueRangeProcessor(ValueRangeProcessor):
  3600.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  3601.     __repr__ = _swig_repr
  3602.     def __init__(self, *args): 
  3603.         _xapian.NumberValueRangeProcessor_swiginit(self,_xapian.new_NumberValueRangeProcessor(*args))
  3604.     __swig_destroy__ = _xapian.delete_NumberValueRangeProcessor
  3605. NumberValueRangeProcessor_swigregister = _xapian.NumberValueRangeProcessor_swigregister
  3606. NumberValueRangeProcessor_swigregister(NumberValueRangeProcessor)
  3607.  
  3608. class QueryParser(object):
  3609.     """
  3610.     Build a Xapian::Query object from a user query string. 
  3611.     """
  3612.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  3613.     __repr__ = _swig_repr
  3614.     FLAG_BOOLEAN = _xapian.QueryParser_FLAG_BOOLEAN
  3615.     FLAG_PHRASE = _xapian.QueryParser_FLAG_PHRASE
  3616.     FLAG_LOVEHATE = _xapian.QueryParser_FLAG_LOVEHATE
  3617.     FLAG_BOOLEAN_ANY_CASE = _xapian.QueryParser_FLAG_BOOLEAN_ANY_CASE
  3618.     FLAG_WILDCARD = _xapian.QueryParser_FLAG_WILDCARD
  3619.     FLAG_PURE_NOT = _xapian.QueryParser_FLAG_PURE_NOT
  3620.     FLAG_PARTIAL = _xapian.QueryParser_FLAG_PARTIAL
  3621.     FLAG_SPELLING_CORRECTION = _xapian.QueryParser_FLAG_SPELLING_CORRECTION
  3622.     FLAG_SYNONYM = _xapian.QueryParser_FLAG_SYNONYM
  3623.     FLAG_AUTO_SYNONYMS = _xapian.QueryParser_FLAG_AUTO_SYNONYMS
  3624.     FLAG_AUTO_MULTIWORD_SYNONYMS = _xapian.QueryParser_FLAG_AUTO_MULTIWORD_SYNONYMS
  3625.     STEM_NONE = _xapian.QueryParser_STEM_NONE
  3626.     STEM_SOME = _xapian.QueryParser_STEM_SOME
  3627.     STEM_ALL = _xapian.QueryParser_STEM_ALL
  3628.     def __init__(self, *args): 
  3629.         """
  3630.         Default constructor.
  3631.  
  3632.         Xapian::QueryParser::QueryParser() 
  3633.         """
  3634.         _xapian.QueryParser_swiginit(self,_xapian.new_QueryParser(*args))
  3635.     __swig_destroy__ = _xapian.delete_QueryParser
  3636.     def set_stemmer(*args):
  3637.         """
  3638.         Set the stemmer.
  3639.  
  3640.         void Xapian::QueryParser::set_stemmer(const Xapian::Stem &stemmer)
  3641.  
  3642.         This sets the stemming algorithm which will be used by the query
  3643.         parser. Note that the stemming algorithm will only be used according
  3644.         to the stemming strategy set by set_stemming_strategy(), which
  3645.         defaults to STEM_NONE. Therefore, to use a stemming algorithm, you
  3646.         will also need to call set_stemming_strategy() with a value other than
  3647.         STEM_NONE. 
  3648.         """
  3649.         return _xapian.QueryParser_set_stemmer(*args)
  3650.  
  3651.     def set_stemming_strategy(*args):
  3652.         """
  3653.         Set the stemming strategy.
  3654.  
  3655.         void Xapian::QueryParser::set_stemming_strategy(stem_strategy
  3656.         strategy)
  3657.  
  3658.         This controls how the query parser will apply the stemming algorithm.
  3659.         The default value is STEM_NONE. The possible values are:
  3660.  
  3661.         STEM_NONE: Don't perform any stemming.
  3662.  
  3663.         STEM_SOME: Search for stemmed forms of terms except for those which
  3664.         start with a capital letter, or are followed by certain characters
  3665.         (currently: (/@<>=*[{" ), or are used with operators which need
  3666.         positional information. Stemmed terms are prefixed with 'Z'.
  3667.  
  3668.         STEM_ALL: Search for stemmed forms of all words (note: no 'Z' prefix
  3669.         is added).
  3670.  
  3671.         Note that the stemming algorithm is only applied to words in
  3672.         probabilistic fields - boolean filter terms are never stemmed. 
  3673.         """
  3674.         return _xapian.QueryParser_set_stemming_strategy(*args)
  3675.  
  3676.     def set_stopper(*args):
  3677.         """
  3678.         Set the stopper.
  3679.  
  3680.         void Xapian::QueryParser::set_stopper(const Stopper *stop=NULL) 
  3681.         """
  3682.         return _xapian.QueryParser_set_stopper(*args)
  3683.  
  3684.     def set_default_op(*args):
  3685.         """
  3686.         Set the default boolean operator.
  3687.  
  3688.         void Xapian::QueryParser::set_default_op(Query::op default_op) 
  3689.         """
  3690.         return _xapian.QueryParser_set_default_op(*args)
  3691.  
  3692.     def get_default_op(*args):
  3693.         """
  3694.         Get the default boolean operator.
  3695.  
  3696.         Query::op Xapian::QueryParser::get_default_op() const 
  3697.         """
  3698.         return _xapian.QueryParser_get_default_op(*args)
  3699.  
  3700.     def set_database(*args):
  3701.         """
  3702.         Specify the database being searched.
  3703.  
  3704.         void Xapian::QueryParser::set_database(const Database &db) 
  3705.         """
  3706.         return _xapian.QueryParser_set_database(*args)
  3707.  
  3708.     def parse_query(*args):
  3709.         """
  3710.         Parse a query.
  3711.  
  3712.         Query Xapian::QueryParser::parse_query(const std::string
  3713.         &query_string, unsigned flags=FLAG_PHRASE|FLAG_BOOLEAN|FLAG_LOVEHATE,
  3714.         const std::string &default_prefix="")
  3715.  
  3716.         Parameters:
  3717.         -----------
  3718.  
  3719.         query_string:  A free-text query as entered by a user
  3720.  
  3721.         flags:  Zero or more Query::feature_flag specifying what features the
  3722.         QueryParser should support. Combine multiple values with bitwise-or
  3723.         (|).
  3724.  
  3725.         default_prefix:  The default term prefix to use (default none). For
  3726.         example, you can pass "A" when parsing an "Author" field. 
  3727.         """
  3728.         return _xapian.QueryParser_parse_query(*args)
  3729.  
  3730.     def add_prefix(*args):
  3731.         """
  3732.         Add a probabilistic term prefix.
  3733.  
  3734.         void Xapian::QueryParser::add_prefix(const std::string &field, const
  3735.         std::string &prefix)
  3736.  
  3737.         For example:
  3738.  
  3739.         This allows the user to search for author:Orwell which will be
  3740.         converted to a search for the term "Aorwell".
  3741.  
  3742.         Multiple fields can be mapped to the same prefix. For example, you can
  3743.         make title: and subject: aliases for each other.
  3744.  
  3745.         As of 1.0.4, you can call this method multiple times with the same
  3746.         value of field to allow a single field to be mapped to multiple
  3747.         prefixes. Multiple terms being generated for such a field, and
  3748.         combined with  Xapian::Query::OP_OR.
  3749.  
  3750.         If any prefixes are specified for the empty field name (i.e. you call
  3751.         this method with an empty string as the first parameter) these
  3752.         prefixes will be used as the default prefix. If you do this and also
  3753.         specify the default_prefix parameter to  parse_query(), then the
  3754.         default_prefix parameter will override.
  3755.  
  3756.         If you call  add_prefix() and  add_boolean_prefix() for the same value
  3757.         of field, a Xapian::InvalidOperationError exception will be thrown.
  3758.  
  3759.         In 1.0.3 and earlier, subsequent calls to this method with the same
  3760.         value of field had no effect.
  3761.  
  3762.         Parameters:
  3763.         -----------
  3764.  
  3765.         field:  The user visible field name
  3766.  
  3767.         prefix:  The term prefix to map this to 
  3768.         """
  3769.         return _xapian.QueryParser_add_prefix(*args)
  3770.  
  3771.     def add_boolean_prefix(*args):
  3772.         """
  3773.         Add a boolean term prefix allowing the user to restrict a search with
  3774.         a boolean filter specified in the free text query.
  3775.  
  3776.         void Xapian::QueryParser::add_boolean_prefix(const std::string &field,
  3777.         const std::string &prefix)
  3778.  
  3779.         For example:
  3780.  
  3781.         This allows the user to restrict a search with site:xapian.org which
  3782.         will be converted to Hxapian.org combined with any probabilistic query
  3783.         with  Xapian::Query::OP_FILTER.
  3784.  
  3785.         If multiple boolean filters are specified in a query for the same
  3786.         prefix, they will be combined with the  Xapian::Query::OP_OR operator.
  3787.         Then, if there are boolean filters for different prefixes, they will
  3788.         be combined with the  Xapian::Query::OP_AND operator.
  3789.  
  3790.         Multiple fields can be mapped to the same prefix (so for example you
  3791.         can make site: and domain: aliases for each other). Instances of
  3792.         fields with different aliases but the same prefix will still be
  3793.         combined with the OR operator.
  3794.  
  3795.         For example, if "site" and "domain" map to "H", but author maps
  3796.         to "A", a search for "site:foo domain:bar author:Fred" will map to
  3797.         "(Hfoo OR Hbar) AND Afred".
  3798.  
  3799.         As of 1.0.4, you can call this method multiple times with the same
  3800.         value of field to allow a single field to be mapped to multiple
  3801.         prefixes. Multiple terms being generated for such a field, and
  3802.         combined with  Xapian::Query::OP_OR.
  3803.  
  3804.         Calling this method with an empty string for field will cause a
  3805.         Xapian::InvalidArgumentError.
  3806.  
  3807.         If you call  add_prefix() and  add_boolean_prefix() for the same value
  3808.         of field, a Xapian::InvalidOperationError exception will be thrown.
  3809.  
  3810.         In 1.0.3 and earlier, subsequent calls to this method with the same
  3811.         value of field had no effect.
  3812.  
  3813.         Parameters:
  3814.         -----------
  3815.  
  3816.         field:  The user visible field name
  3817.  
  3818.         prefix:  The term prefix to map this to 
  3819.         """
  3820.         return _xapian.QueryParser_add_boolean_prefix(*args)
  3821.  
  3822.     def stoplist_begin(*args):
  3823.         """
  3824.         Iterate over terms omitted from the query as stopwords.
  3825.  
  3826.         TermIterator Xapian::QueryParser::stoplist_begin() const 
  3827.         """
  3828.         return _xapian.QueryParser_stoplist_begin(*args)
  3829.  
  3830.     def stoplist_end(*args):
  3831.         """TermIterator Xapian::QueryParser::stoplist_end() const """
  3832.         return _xapian.QueryParser_stoplist_end(*args)
  3833.  
  3834.     def unstem_begin(*args):
  3835.         """
  3836.         Iterate over unstemmed forms of the given (stemmed) term used in the
  3837.         query.
  3838.  
  3839.         TermIterator Xapian::QueryParser::unstem_begin(const std::string
  3840.         &term) const 
  3841.         """
  3842.         return _xapian.QueryParser_unstem_begin(*args)
  3843.  
  3844.     def unstem_end(*args):
  3845.         """
  3846.         TermIterator
  3847.         Xapian::QueryParser::unstem_end(const std::string &) const 
  3848.         """
  3849.         return _xapian.QueryParser_unstem_end(*args)
  3850.  
  3851.     def add_valuerangeprocessor(*args):
  3852.         """
  3853.         Register a ValueRangeProcessor.
  3854.  
  3855.         void Xapian::QueryParser::add_valuerangeprocessor(Xapian::ValueRangePr
  3856.         ocessor *vrproc) 
  3857.         """
  3858.         return _xapian.QueryParser_add_valuerangeprocessor(*args)
  3859.  
  3860.     def get_corrected_query_string(*args):
  3861.         """
  3862.         Get the spelling-corrected query string.
  3863.  
  3864.         std::string Xapian::QueryParser::get_corrected_query_string() const
  3865.  
  3866.         This will only be set if FLAG_SPELLING_CORRECTION is specified when
  3867.         QueryParser::parse_query() was last called.
  3868.  
  3869.         If there were no corrections, an empty string is returned. 
  3870.         """
  3871.         return _xapian.QueryParser_get_corrected_query_string(*args)
  3872.  
  3873.     def __str__(*args):
  3874.         """
  3875.         Return a string describing this object.
  3876.  
  3877.         std::string Xapian::QueryParser::get_description() const 
  3878.         """
  3879.         return _xapian.QueryParser___str__(*args)
  3880.  
  3881.     def get_description(*args):
  3882.         """
  3883.         Return a string describing this object.
  3884.  
  3885.         std::string Xapian::QueryParser::get_description() const 
  3886.         """
  3887.         return _xapian.QueryParser_get_description(*args)
  3888.  
  3889. QueryParser.set_stemmer = new_instancemethod(_xapian.QueryParser_set_stemmer,None,QueryParser)
  3890. QueryParser.set_stemming_strategy = new_instancemethod(_xapian.QueryParser_set_stemming_strategy,None,QueryParser)
  3891. QueryParser.set_stopper = new_instancemethod(_xapian.QueryParser_set_stopper,None,QueryParser)
  3892. QueryParser.set_default_op = new_instancemethod(_xapian.QueryParser_set_default_op,None,QueryParser)
  3893. QueryParser.get_default_op = new_instancemethod(_xapian.QueryParser_get_default_op,None,QueryParser)
  3894. QueryParser.set_database = new_instancemethod(_xapian.QueryParser_set_database,None,QueryParser)
  3895. QueryParser.parse_query = new_instancemethod(_xapian.QueryParser_parse_query,None,QueryParser)
  3896. QueryParser.add_prefix = new_instancemethod(_xapian.QueryParser_add_prefix,None,QueryParser)
  3897. QueryParser.add_boolean_prefix = new_instancemethod(_xapian.QueryParser_add_boolean_prefix,None,QueryParser)
  3898. QueryParser.stoplist_begin = new_instancemethod(_xapian.QueryParser_stoplist_begin,None,QueryParser)
  3899. QueryParser.stoplist_end = new_instancemethod(_xapian.QueryParser_stoplist_end,None,QueryParser)
  3900. QueryParser.unstem_begin = new_instancemethod(_xapian.QueryParser_unstem_begin,None,QueryParser)
  3901. QueryParser.unstem_end = new_instancemethod(_xapian.QueryParser_unstem_end,None,QueryParser)
  3902. QueryParser.add_valuerangeprocessor = new_instancemethod(_xapian.QueryParser_add_valuerangeprocessor,None,QueryParser)
  3903. QueryParser.get_corrected_query_string = new_instancemethod(_xapian.QueryParser_get_corrected_query_string,None,QueryParser)
  3904. QueryParser.__str__ = new_instancemethod(_xapian.QueryParser___str__,None,QueryParser)
  3905. QueryParser.get_description = new_instancemethod(_xapian.QueryParser_get_description,None,QueryParser)
  3906. QueryParser_swigregister = _xapian.QueryParser_swigregister
  3907. QueryParser_swigregister(QueryParser)
  3908.  
  3909. sortable_serialise = _xapian.sortable_serialise
  3910. sortable_unserialise = _xapian.sortable_unserialise
  3911. class Stem(object):
  3912.     """
  3913.     Class representing a stemming algorithm. 
  3914.     """
  3915.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  3916.     __repr__ = _swig_repr
  3917.     def __init__(self, *args): 
  3918.         """
  3919.         Construct a Xapian::Stem object for a particular language.
  3920.  
  3921.         Xapian::Stem::Stem(const std::string &language)
  3922.  
  3923.         Parameters:
  3924.         -----------
  3925.  
  3926.         language:  Either the English name for the language or the two letter
  3927.         ISO639 code.
  3928.  
  3929.         The following language names are understood (aliases follow the name):
  3930.  
  3931.         none - don't stem terms
  3932.  
  3933.         danish (da)
  3934.  
  3935.         dutch (nl)
  3936.  
  3937.         english (en) - Martin Porter's 2002 revision of his stemmer
  3938.  
  3939.         english_lovins (lovins) - Lovin's stemmer
  3940.  
  3941.         english_porter (porter) - Porter's stemmer as described in his 1980
  3942.         paper
  3943.  
  3944.         finnish (fi)
  3945.  
  3946.         french (fr)
  3947.  
  3948.         german (de)
  3949.  
  3950.         italian (it)
  3951.  
  3952.         norwegian (no)
  3953.  
  3954.         portuguese (pt)
  3955.  
  3956.         russian (ru)
  3957.  
  3958.         spanish (es)
  3959.  
  3960.         swedish (sv)
  3961.  
  3962.         Parameters:
  3963.         -----------
  3964.  
  3965.         Xapian::InvalidArgumentError:  is thrown if language isn't recognised.
  3966.  
  3967.         """
  3968.         _xapian.Stem_swiginit(self,_xapian.new_Stem(*args))
  3969.     __swig_destroy__ = _xapian.delete_Stem
  3970.     def __str__(*args):
  3971.         """
  3972.         Return a string describing this object.
  3973.  
  3974.         std::string Xapian::Stem::get_description() const 
  3975.         """
  3976.         return _xapian.Stem___str__(*args)
  3977.  
  3978.     get_available_languages = staticmethod(_xapian.Stem_get_available_languages)
  3979.     def get_description(*args):
  3980.         """
  3981.         Return a string describing this object.
  3982.  
  3983.         std::string Xapian::Stem::get_description() const 
  3984.         """
  3985.         return _xapian.Stem_get_description(*args)
  3986.  
  3987. Stem.__call__ = new_instancemethod(_xapian.Stem___call__,None,Stem)
  3988. Stem.__str__ = new_instancemethod(_xapian.Stem___str__,None,Stem)
  3989. Stem.get_description = new_instancemethod(_xapian.Stem_get_description,None,Stem)
  3990. Stem_swigregister = _xapian.Stem_swigregister
  3991. Stem_swigregister(Stem)
  3992. Stem_get_available_languages = _xapian.Stem_get_available_languages
  3993.  
  3994. class TermGenerator(object):
  3995.     """
  3996.     Parses a piece of text and generate terms.
  3997.  
  3998.     This module takes a piece of text and parses it to produce words which
  3999.     are then used to generate suitable terms for indexing. The terms
  4000.     generated are suitable for use with Query objects produced by the
  4001.     QueryParser class. 
  4002.     """
  4003.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  4004.     __repr__ = _swig_repr
  4005.     def __init__(self, *args): 
  4006.         """
  4007.         Default constructor.
  4008.  
  4009.         Xapian::TermGenerator::TermGenerator() 
  4010.         """
  4011.         _xapian.TermGenerator_swiginit(self,_xapian.new_TermGenerator(*args))
  4012.     __swig_destroy__ = _xapian.delete_TermGenerator
  4013.     def set_stemmer(*args):
  4014.         """
  4015.         Set the Xapian::Stem object to be used for generating stemmed terms.
  4016.  
  4017.         void Xapian::TermGenerator::set_stemmer(const Xapian::Stem &stemmer)
  4018.  
  4019.         """
  4020.         return _xapian.TermGenerator_set_stemmer(*args)
  4021.  
  4022.     def set_stopper(*args):
  4023.         """
  4024.         Set the Xapian::Stopper object to be used for identifying stopwords.
  4025.  
  4026.         void Xapian::TermGenerator::set_stopper(const Xapian::Stopper
  4027.         *stop=NULL) 
  4028.         """
  4029.         return _xapian.TermGenerator_set_stopper(*args)
  4030.  
  4031.     def set_document(*args):
  4032.         """
  4033.         Set the current document.
  4034.  
  4035.         void Xapian::TermGenerator::set_document(const Xapian::Document &doc)
  4036.  
  4037.         """
  4038.         return _xapian.TermGenerator_set_document(*args)
  4039.  
  4040.     def get_document(*args):
  4041.         """
  4042.         Get the current document.
  4043.  
  4044.         const Xapian::Document& Xapian::TermGenerator::get_document() const 
  4045.         """
  4046.         return _xapian.TermGenerator_get_document(*args)
  4047.  
  4048.     def set_database(*args):
  4049.         """
  4050.         Set the database to index spelling data to.
  4051.  
  4052.         void Xapian::TermGenerator::set_database(const
  4053.         Xapian::WritableDatabase &db) 
  4054.         """
  4055.         return _xapian.TermGenerator_set_database(*args)
  4056.  
  4057.     FLAG_SPELLING = _xapian.TermGenerator_FLAG_SPELLING
  4058.     def set_flags(*args):
  4059.         """
  4060.         Set flags.
  4061.  
  4062.         flags Xapian::TermGenerator::set_flags(flags toggle, flags
  4063.         mask=flags(0))
  4064.  
  4065.         The new value of flags is: (flags & mask) ^ toggle
  4066.  
  4067.         To just set the flags, pass the new flags in toggle and the default
  4068.         value for mask.
  4069.  
  4070.         Parameters:
  4071.         -----------
  4072.  
  4073.         toggle:  Flags to XOR.
  4074.  
  4075.         mask:  Flags to AND with first.
  4076.  
  4077.         The old flags setting. 
  4078.         """
  4079.         return _xapian.TermGenerator_set_flags(*args)
  4080.  
  4081.     def index_text(*args):
  4082.         """
  4083.         Index some text in a std::string.
  4084.  
  4085.         void Xapian::TermGenerator::index_text(const std::string &text,
  4086.         Xapian::termcount weight=1, const std::string &prefix="")
  4087.  
  4088.         Parameters:
  4089.         -----------
  4090.  
  4091.         weight:  The wdf increment (default 1).
  4092.  
  4093.         prefix:  The term prefix to use (default is no prefix). 
  4094.         """
  4095.         return _xapian.TermGenerator_index_text(*args)
  4096.  
  4097.     def index_text_without_positions(*args):
  4098.         """
  4099.         Index some text in a std::string without positional information.
  4100.  
  4101.         void Xapian::TermGenerator::index_text_without_positions(const
  4102.         std::string &text, Xapian::termcount weight=1, const std::string
  4103.         &prefix="")
  4104.  
  4105.         Just like index_text, but no positional information is generated. This
  4106.         means that the database will be significantly smaller, but that phrase
  4107.         searching and NEAR won't be supported. 
  4108.         """
  4109.         return _xapian.TermGenerator_index_text_without_positions(*args)
  4110.  
  4111.     def increase_termpos(*args):
  4112.         """
  4113.         Increase the termpos used by index_text by delta.
  4114.  
  4115.         void Xapian::TermGenerator::increase_termpos(Xapian::termcount
  4116.         delta=100)
  4117.  
  4118.         This can be used to prevent phrase searches from spanning two
  4119.         unconnected blocks of text (e.g. the title and body text). 
  4120.         """
  4121.         return _xapian.TermGenerator_increase_termpos(*args)
  4122.  
  4123.     def get_termpos(*args):
  4124.         """
  4125.         Get the current term position.
  4126.  
  4127.         Xapian::termcount Xapian::TermGenerator::get_termpos() const 
  4128.         """
  4129.         return _xapian.TermGenerator_get_termpos(*args)
  4130.  
  4131.     def set_termpos(*args):
  4132.         """
  4133.         Set the current term position.
  4134.  
  4135.         void Xapian::TermGenerator::set_termpos(Xapian::termcount termpos) 
  4136.         """
  4137.         return _xapian.TermGenerator_set_termpos(*args)
  4138.  
  4139.     def __str__(*args):
  4140.         """
  4141.         Return a string describing this object.
  4142.  
  4143.         std::string Xapian::TermGenerator::get_description() const 
  4144.         """
  4145.         return _xapian.TermGenerator___str__(*args)
  4146.  
  4147. TermGenerator.set_stemmer = new_instancemethod(_xapian.TermGenerator_set_stemmer,None,TermGenerator)
  4148. TermGenerator.set_stopper = new_instancemethod(_xapian.TermGenerator_set_stopper,None,TermGenerator)
  4149. TermGenerator.set_document = new_instancemethod(_xapian.TermGenerator_set_document,None,TermGenerator)
  4150. TermGenerator.get_document = new_instancemethod(_xapian.TermGenerator_get_document,None,TermGenerator)
  4151. TermGenerator.set_database = new_instancemethod(_xapian.TermGenerator_set_database,None,TermGenerator)
  4152. TermGenerator.set_flags = new_instancemethod(_xapian.TermGenerator_set_flags,None,TermGenerator)
  4153. TermGenerator.index_text = new_instancemethod(_xapian.TermGenerator_index_text,None,TermGenerator)
  4154. TermGenerator.index_text_without_positions = new_instancemethod(_xapian.TermGenerator_index_text_without_positions,None,TermGenerator)
  4155. TermGenerator.increase_termpos = new_instancemethod(_xapian.TermGenerator_increase_termpos,None,TermGenerator)
  4156. TermGenerator.get_termpos = new_instancemethod(_xapian.TermGenerator_get_termpos,None,TermGenerator)
  4157. TermGenerator.set_termpos = new_instancemethod(_xapian.TermGenerator_set_termpos,None,TermGenerator)
  4158. TermGenerator.__str__ = new_instancemethod(_xapian.TermGenerator___str__,None,TermGenerator)
  4159. TermGenerator_swigregister = _xapian.TermGenerator_swigregister
  4160. TermGenerator_swigregister(TermGenerator)
  4161.  
  4162. class Sorter(object):
  4163.     """
  4164.     Virtual base class for sorter functor. 
  4165.     """
  4166.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  4167.     __repr__ = _swig_repr
  4168.     __swig_destroy__ = _xapian.delete_Sorter
  4169.     def __init__(self, *args): 
  4170.         if self.__class__ == Sorter:
  4171.             args = (None,) + args
  4172.         else:
  4173.             args = (self,) + args
  4174.         _xapian.Sorter_swiginit(self,_xapian.new_Sorter(*args))
  4175.     def __disown__(self):
  4176.         self.this.disown()
  4177.         _xapian.disown_Sorter(self)
  4178.         return weakref_proxy(self)
  4179. Sorter.__call__ = new_instancemethod(_xapian.Sorter___call__,None,Sorter)
  4180. Sorter_swigregister = _xapian.Sorter_swigregister
  4181. Sorter_swigregister(Sorter)
  4182.  
  4183. class MultiValueSorter(Sorter):
  4184.     """
  4185.     Sorter subclass which sorts by a several values.
  4186.  
  4187.     Results are ordered by the first value. In the event of a tie, the
  4188.     second is used. If this is the same for both, the third is used, and
  4189.     so on. 
  4190.     """
  4191.     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
  4192.     __repr__ = _swig_repr
  4193.     def __init__(self, *args): 
  4194.         """
  4195.         Xapian::MultiValueSorter::MultiValueSorter(Iterator begin, Iterator
  4196.         end) 
  4197.         """
  4198.         _xapian.MultiValueSorter_swiginit(self,_xapian.new_MultiValueSorter(*args))
  4199.     def add(*args):
  4200.         """
  4201.         void
  4202.         Xapian::MultiValueSorter::add(Xapian::valueno valno, bool
  4203.         forward=true) 
  4204.         """
  4205.         return _xapian.MultiValueSorter_add(*args)
  4206.  
  4207.     __swig_destroy__ = _xapian.delete_MultiValueSorter
  4208. MultiValueSorter.add = new_instancemethod(_xapian.MultiValueSorter_add,None,MultiValueSorter)
  4209. MultiValueSorter_swigregister = _xapian.MultiValueSorter_swigregister
  4210. MultiValueSorter_swigregister(MultiValueSorter)
  4211.  
  4212. # Set the documentation format - this is used by tools like "epydoc" to decide
  4213. # how to format the documentation strings.
  4214. __docformat__ = "restructuredtext en"
  4215.  
  4216. class _SequenceMixIn(object):
  4217.     """Simple mixin class which provides a sequence API to a class.
  4218.  
  4219.     This is used to support the legacy API to iterators used for releases of
  4220.     Xapian earlier than 1.0.  It will be removed once this legacy API is
  4221.     removed in release 1.1.
  4222.  
  4223.     """
  4224.  
  4225.     __slots__ = ('_sequence_items', )
  4226.     def __init__(self, *args):
  4227.         """Initialise the sequence.
  4228.  
  4229.         *args holds the list of properties or property names to be returned, in
  4230.         the order they are returned by the sequence API.
  4231.         
  4232.         If an item in the list is a string, it is considered to be a property
  4233.         name; otherwise, it is considered to be a property value, and is
  4234.         returned without doing an attribute lookup.  (Yes, this is a nasty
  4235.         hack.  No, I don't care, because this is only a temporary piece of
  4236.         internal code.)
  4237.  
  4238.         """
  4239.         self._sequence_items = args
  4240.  
  4241.     def __len__(self):
  4242.         """Get the length of the sequence.
  4243.  
  4244.         Doesn't evaluate any of the lazily evaluated properties.
  4245.  
  4246.         """
  4247.         return len(self._sequence_items)
  4248.  
  4249.     def _get_single_item(self, index):
  4250.         """Get a single item.
  4251.  
  4252.         Used by __getitem__ to get individual items.
  4253.  
  4254.         """
  4255.         if not isinstance(index, basestring):
  4256.              return index
  4257.         return getattr(self, index)
  4258.  
  4259.     def __getitem__(self, key):
  4260.         """Get an item, or a slice of items, from the sequence.
  4261.  
  4262.         If any of the items are lazily evaluated properties, they will be
  4263.         evaluated here.
  4264.  
  4265.         """
  4266.         if isinstance(key, slice):
  4267.             return [self._get_single_item(i) for i in self._sequence_items[key]]
  4268.         return self._get_single_item(self._sequence_items[key])
  4269.  
  4270.     def __iter__(self):
  4271.         """Make an iterator for over the sequence.
  4272.  
  4273.         This simply copies the items into a list, and returns an iterator over
  4274.         it.  Any lazily evaluated properties will be evaluated here.
  4275.  
  4276.         """
  4277.         return iter(self[:])
  4278.  
  4279.  
  4280. ##################################
  4281. # Support for iteration of MSets #
  4282. ##################################
  4283.  
  4284. class MSetItem(_SequenceMixIn):
  4285.     """An item returned from iteration of the MSet.
  4286.  
  4287.     The item supports access to the following attributes and properties:
  4288.  
  4289.      - `docid`: The Xapian document ID corresponding to this MSet item.
  4290.      - `weight`: The weight corresponding to this MSet item.
  4291.      - `rank`: The rank of this MSet item.  The rank is the position in the
  4292.        total set of matching documents of this item.  The highest document is
  4293.        given a rank of 0.  If the MSet did not start at the highest matching
  4294.        document, because a non-zero 'start' parameter was supplied to
  4295.        get_mset(), the first document in the MSet will have a rank greater than
  4296.        0 (in fact, it will be equal to the value of 'start' supplied to
  4297.        get_mset()).
  4298.      - `percent`: The percentage score assigned to this MSet item.
  4299.      - `document`: The document for this MSet item.  This can be used to access
  4300.        the document data, or any other information stored in the document (such
  4301.        as term lists).  It is lazily evaluated.
  4302.      - `collapse_key`: The value of the key which was used for collapsing.
  4303.      - `collapse_count`: An estimate of the number of documents that have been
  4304.        collapsed into this one.
  4305.  
  4306.     The collapse count estimate will always be less than or equal to the actual
  4307.     number of other documents satisfying the match criteria with the same
  4308.     collapse key as this document.  If may be 0 even though there are other
  4309.     documents with the same collapse key which satisfying the match criteria.
  4310.     However if this method returns non-zero, there definitely are other such
  4311.     documents.  So this method may be used to inform the user that there are
  4312.     "at least N other matches in this group", or to control whether to offer a
  4313.     "show other documents in this group" feature (but note that it may not
  4314.     offer it in every case where it would show other documents).
  4315.  
  4316.     """
  4317.  
  4318.     __slots__ = ('_mset', '_firstitem', 'docid', 'weight', 'rank',
  4319.                  'percent', 'collapse_key', 'collapse_count', '_document', )
  4320.  
  4321.     def __init__(self, iter, mset):
  4322.         self._mset = mset
  4323.         self._firstitem = self._mset.get_firstitem()
  4324.         self.docid = iter.get_docid()
  4325.         self.weight = iter.get_weight()
  4326.         self.rank = iter.get_rank()
  4327.         self.percent = iter.get_percent()
  4328.         self.collapse_key = iter.get_collapse_key()
  4329.         self.collapse_count = iter.get_collapse_count()
  4330.         self._document = None
  4331.         _SequenceMixIn.__init__(self, 'docid', 'weight', 'rank', 'percent', 'document')
  4332.  
  4333.     def _get_document(self):
  4334.         if self._document is None:
  4335.             self._document = self._mset._get_hit_internal(self.rank - self._firstitem).get_document()
  4336.         return self._document
  4337.  
  4338.     # Deprecated methods: to be removed in 1.1.0
  4339.     def get_docid(self):
  4340.         "Deprecated method: use the `docid` property instead."
  4341.         return self.docid
  4342.     def get_weight(self):
  4343.         "Deprecated method: use the `weight` property instead."
  4344.         return self.weight
  4345.     def get_rank(self):
  4346.         "Deprecated method: use the `rank` property instead."
  4347.         return self.rank
  4348.     def get_percent(self):
  4349.         "Deprecated method: use the `percent` property instead."
  4350.         return self.percent
  4351.     def get_collapse_key(self):
  4352.         "Deprecated method: use the `collapse_key` property instead."
  4353.         return self.collapse_key
  4354.     def get_collapse_count(self):
  4355.         "Deprecated method: use the `collapse_count` property instead."
  4356.         return self.collapse_count
  4357.     def get_document(self):
  4358.         "Deprecated method: use the `document` property instead."
  4359.         return self.document
  4360.  
  4361.     document = property(_get_document, doc="The document object corresponding to this MSet item.")
  4362.  
  4363. class MSetIter(object):
  4364.     """An iterator over the items in an MSet.
  4365.  
  4366.     The iterator will return MSetItem objects, which will be evaluated lazily
  4367.     where appropriate.
  4368.  
  4369.     """
  4370.     __slots__ = ('_iter', '_end', '_mset')
  4371.     def __init__(self, mset):
  4372.         self._iter = mset.begin()
  4373.         self._end = mset.end()
  4374.         self._mset = mset
  4375.  
  4376.     def __iter__(self):
  4377.         return self
  4378.  
  4379.     def next(self):
  4380.         if self._iter == self._end:
  4381.             raise StopIteration
  4382.         else:
  4383.             r = MSetItem(self._iter, self._mset)
  4384.             self._iter.next()
  4385.             return r
  4386.  
  4387.  
  4388. # Modify the MSet to allow access to the python iterators, and have other
  4389. # convenience methods.
  4390.  
  4391. def _mset_gen_iter(self):
  4392.     """Return an iterator over the MSet.
  4393.  
  4394.     The iterator will return MSetItem objects, which will be evaluated lazily
  4395.     where appropriate.
  4396.  
  4397.     """
  4398.     return MSetIter(self)
  4399. MSet.__iter__ = _mset_gen_iter
  4400.  
  4401. MSet.__len__ = MSet.size
  4402.  
  4403. # We replace the get_hit() method with one which returns an MSetItem.  We first
  4404. # have to copy the internal method, so that we can call it.
  4405. MSet._get_hit_internal = MSet.get_hit
  4406. def _mset_getitem(self, index):
  4407.     """Get an item from the MSet.
  4408.  
  4409.     The supplied index is relative to the start of the MSet, not the absolute
  4410.     rank of the item.
  4411.  
  4412.     Returns an MSetItem.
  4413.  
  4414.     """
  4415.     if index < 0:
  4416.         index += len(self)
  4417.     if index < 0 or index >= len(self):
  4418.         raise IndexError("Mset index out of range")
  4419.     return MSetItem(self._get_hit_internal(index), self)
  4420. MSet.__getitem__ = _mset_getitem
  4421. MSet.get_hit = _mset_getitem
  4422.  
  4423. def _mset_contains(self, index):
  4424.     """Check if the Mset contains an item at the given index
  4425.  
  4426.     The supplied index is relative to the start of the MSet, not the absolute
  4427.     rank of the item.
  4428.  
  4429.     """
  4430.     return key >= 0 and key < len(self)
  4431. MSet.__contains__ = _mset_contains
  4432.  
  4433.  
  4434. ##################################
  4435. # Support for iteration of ESets #
  4436. ##################################
  4437.  
  4438. class ESetItem(_SequenceMixIn):
  4439.     """An item returned from iteration of the ESet.
  4440.  
  4441.     The item supports access to the following attributes:
  4442.  
  4443.      - `term`: The term corresponding to this ESet item.
  4444.      - `weight`: The weight corresponding to this ESet item.
  4445.  
  4446.     """
  4447.     __slots__ = ('term', 'weight')
  4448.  
  4449.     def __init__(self, iter):
  4450.         self.term = iter.get_term()
  4451.         self.weight = iter.get_weight()
  4452.         _SequenceMixIn.__init__(self, 'term', 'weight')
  4453.  
  4454. class ESetIter(object):
  4455.     """An iterator over the items in an ESet.
  4456.  
  4457.     The iterator will return ESetItem objects.
  4458.  
  4459.     """
  4460.     __slots__ = ('_iter', '_end')
  4461.     def __init__(self, eset):
  4462.         self._iter = eset.begin()
  4463.         self._end = eset.end()
  4464.  
  4465.     def __iter__(self):
  4466.         return self
  4467.  
  4468.     def next(self):
  4469.         if self._iter == self._end:
  4470.             raise StopIteration
  4471.         else:
  4472.             r = ESetItem(self._iter)
  4473.             self._iter.next()
  4474.             return r
  4475.  
  4476. # Modify the ESet to allow access to the python iterators, and have other
  4477. # convenience methods.
  4478.  
  4479. def _eset_gen_iter(self):
  4480.     """Return an iterator over the ESet.
  4481.     
  4482.     The iterator will return ESetItem objects.
  4483.  
  4484.     """
  4485.     return ESetIter(self)
  4486. ESet.__iter__ = _eset_gen_iter
  4487.  
  4488. ESet.__len__ = ESet.size
  4489.  
  4490.  
  4491. #######################################
  4492. # Support for iteration of term lists #
  4493. #######################################
  4494.  
  4495. class TermListItem(_SequenceMixIn):
  4496.     """An item returned from iteration of a term list.
  4497.  
  4498.     The item supports access to the following attributes and properties:
  4499.  
  4500.      - `term`: The term corresponding to this TermListItem.
  4501.      - `wdf`: The within document frequency of this term.
  4502.      - `termfreq`: The number of documents in the collection which are indexed
  4503.        by the term
  4504.      - `positer`: An iterator over the positions which the term appears at in
  4505.        the document.  This is only available until the iterator which returned
  4506.        this item next moves.
  4507.  
  4508.     """
  4509.     __slots__ = ('_iter', 'term', '_wdf', '_termfreq')
  4510.  
  4511.     def __init__(self, iter, term):
  4512.         self._iter = iter
  4513.         self.term = term
  4514.         self._wdf = None
  4515.         self._termfreq = None
  4516.  
  4517.         if iter._has_wdf == TermIter.EAGER:
  4518.             self._wdf = iter._iter.get_wdf()
  4519.         if iter._has_termfreq == TermIter.EAGER:
  4520.             self._termfreq = iter._iter.get_termfreq()
  4521.  
  4522.         # Support for sequence API
  4523.         sequence = ['term', 'wdf', 'termfreq', 'positer']
  4524.         if iter._has_wdf == TermIter.INVALID:
  4525.             sequence[1] = 0
  4526.         if iter._has_termfreq == TermIter.INVALID:
  4527.             sequence[2] = 0
  4528.         if iter._has_positions == TermIter.INVALID:
  4529.             sequence[3] = PositionIter()
  4530.         _SequenceMixIn.__init__(self, *sequence)
  4531.  
  4532.     def _get_wdf(self):
  4533.         """Get the within-document-frequency of the current term.
  4534.  
  4535.         This will raise a InvalidOperationError exception if the iterator this
  4536.         item came from doesn't support within-document-frequencies.
  4537.  
  4538.         """
  4539.         if self._wdf is None:
  4540.             if self._iter._has_wdf == TermIter.INVALID:
  4541.                 raise InvalidOperationError("Iterator does not support wdfs")
  4542.             if self.term is not self._iter._lastterm:
  4543.                 raise InvalidOperationError("Iterator has moved, and does not support random access")
  4544.             self._wdf = self._iter._iter.get_wdf()
  4545.         return self._wdf
  4546.     wdf = property(_get_wdf, doc=
  4547.     """The within-document-frequency of the current term (if meaningful).
  4548.  
  4549.     This will raise a InvalidOperationError exception if the iterator
  4550.     this item came from doesn't support within-document-frequencies.
  4551.  
  4552.     """)
  4553.  
  4554.     def _get_termfreq(self):
  4555.         """Get the term frequency.
  4556.  
  4557.         This is the number of documents in the collection which are indexed by
  4558.         the term.
  4559.  
  4560.         This will raise a InvalidOperationError exception if the iterator this
  4561.         item came from doesn't support term frequencies.
  4562.  
  4563.         """
  4564.         if self._termfreq is None:
  4565.             if self._iter._has_termfreq == TermIter.INVALID:
  4566.                 raise InvalidOperationError("Iterator does not support term frequencies")
  4567.             if self.term is not self._iter._lastterm:
  4568.                 raise InvalidOperationError("Iterator has moved, and does not support random access")
  4569.             self._termfreq = self._iter._iter.get_termfreq()
  4570.         return self._termfreq
  4571.     termfreq = property(_get_termfreq, doc=
  4572.     """The term frequency of the current term (if meaningful).
  4573.  
  4574.     This is the number of documents in the collection which are indexed by the
  4575.     term.
  4576.  
  4577.     This will raise a InvalidOperationError exception if the iterator
  4578.     this item came from doesn't support term frequencies.
  4579.  
  4580.     """)
  4581.  
  4582.     def _get_positer(self):
  4583.         """Get a position list iterator.
  4584.  
  4585.         The iterator will return integers representing the positions that the
  4586.         term occurs at.
  4587.  
  4588.         This will raise a InvalidOperationError exception if the iterator this
  4589.         item came from doesn't support position lists, or if the iterator has
  4590.         moved on since the item was returned from it.
  4591.  
  4592.         """
  4593.         if self._iter._has_positions == TermIter.INVALID:
  4594.             raise InvalidOperationError("Iterator does not support position lists")
  4595.         # Access to position lists is always lazy, so we don't need to check
  4596.         # _has_positions.
  4597.         if self.term is not self._iter._lastterm:
  4598.             raise InvalidOperationError("Iterator has moved, and does not support random access")
  4599.         return PositionIter(self._iter._iter.positionlist_begin(),
  4600.                             self._iter._iter.positionlist_end())
  4601.     positer = property(_get_positer, doc=
  4602.     """A position iterator for the current term (if meaningful).
  4603.  
  4604.     The iterator will return integers representing the positions that the term
  4605.     occurs at.
  4606.  
  4607.     This will raise a InvalidOperationError exception if the iterator this item
  4608.     came from doesn't support position lists, or if the iterator has moved on
  4609.     since the item was returned from it.
  4610.  
  4611.     """)
  4612.  
  4613.  
  4614. class TermIter(object):
  4615.     """An iterator over a term list.
  4616.  
  4617.     The iterator will return TermListItem objects, which will be evaluated
  4618.     lazily where appropriate.
  4619.  
  4620.     """
  4621.     __slots__ = ('_iter', '_end', '_has_termfreq', '_has_wdf',
  4622.                  '_has_positions', '_return_strings', '_lastterm', '_moved')
  4623.  
  4624.     INVALID = 0
  4625.     LAZY = 1
  4626.     EAGER = 2
  4627.  
  4628.     def __init__(self, start, end, has_termfreq=INVALID,
  4629.                  has_wdf=INVALID, has_positions=INVALID,
  4630.                  return_strings=False):
  4631.         self._iter = start
  4632.         self._end = end
  4633.         self._has_termfreq = has_termfreq
  4634.         self._has_wdf = has_wdf
  4635.         self._has_positions = has_positions
  4636.         assert(has_positions != TermIter.EAGER) # Can't do eager access to position lists
  4637.         self._return_strings = return_strings
  4638.         self._lastterm = None # Used to test if the iterator has moved
  4639.  
  4640.         # _moved is True if we've moved onto the next item.  This is needed so
  4641.         # that the iterator doesn't have to move on until just before next() is
  4642.         # called: since the iterator starts by pointing at a valid item, we
  4643.         # can't just call self._iter.next() unconditionally at the start of our
  4644.         # next() method.
  4645.         self._moved = True
  4646.  
  4647.     def __iter__(self):
  4648.         return self
  4649.  
  4650.     def next(self):
  4651.         if not self._moved:
  4652.             self._iter.next()
  4653.             self._moved = True
  4654.  
  4655.         if self._iter == self._end:
  4656.             self._lastterm = None
  4657.             raise StopIteration
  4658.         else:
  4659.             self._lastterm = self._iter.get_term()
  4660.             self._moved = False
  4661.             if self._return_strings:
  4662.                 return self._lastterm
  4663.             return TermListItem(self, self._lastterm)
  4664.  
  4665.     def skip_to(self, term):
  4666.         """Skip the iterator forward.
  4667.  
  4668.         The iterator is advanced to the first term at or after the current
  4669.         position which is greater than or equal to the supplied term.
  4670.  
  4671.         If there are no such items, this will raise StopIteration.
  4672.  
  4673.         This returns the item which the iterator is moved to.  The subsequent
  4674.         item will be returned the next time that next() is called (unless
  4675.         skip_to() is called again first).
  4676.  
  4677.         """
  4678.         if self._iter != self._end:
  4679.             self._iter.skip_to(term)
  4680.  
  4681.         if self._iter == self._end:
  4682.             self._lastterm = None
  4683.             self._moved = True
  4684.             raise StopIteration
  4685.  
  4686.         # Update self._lastterm if the iterator has moved.
  4687.         # TermListItems compare a saved value of lastterm with self._lastterm
  4688.         # with the object identity comparator, so it is important to ensure
  4689.         # that it does not get modified if the new term compares equal.
  4690.         newterm = self._iter.get_term()
  4691.         if newterm != self._lastterm:
  4692.             self._lastterm = newterm
  4693.  
  4694.         self._moved = False
  4695.         if self._return_strings:
  4696.             return self._lastterm
  4697.         return TermListItem(self, self._lastterm)
  4698.  
  4699. # Modify Enquire to add a "matching_terms()" method.
  4700. def _enquire_gen_iter(self, which):
  4701.     """Get an iterator over the terms which match a given match set item.
  4702.  
  4703.     The match set item to consider is specified by the `which` parameter, which
  4704.     may be a document ID, or an MSetItem object.
  4705.  
  4706.     The iterator will return string objects.
  4707.  
  4708.     """
  4709.     if isinstance(which, MSetItem):
  4710.         which = which.docid
  4711.     return TermIter(self.get_matching_terms_begin(which),
  4712.                     self.get_matching_terms_end(which),
  4713.                     return_strings=True)
  4714. Enquire.matching_terms = _enquire_gen_iter
  4715.  
  4716. # get_matching_terms() is deprecated, but does just the same as
  4717. # matching_terms()
  4718. Enquire.get_matching_terms = _enquire_gen_iter
  4719.  
  4720. # Modify Query to add an "__iter__()" method.
  4721. def _query_gen_iter(self):
  4722.     """Get an iterator over the terms in a query.
  4723.  
  4724.     The iterator will return string objects.
  4725.  
  4726.     """
  4727.     return TermIter(self.get_terms_begin(),
  4728.                     self.get_terms_end(),
  4729.                     return_strings=True)
  4730. Query.__iter__ = _query_gen_iter
  4731.  
  4732. # Modify Database to add an "__iter__()" method and an "allterms()" method.
  4733. def _database_gen_allterms_iter(self, prefix=None):
  4734.     """Get an iterator over all the terms in the database.
  4735.  
  4736.     The iterator will return TermListItem objects, but these will not support
  4737.     access to wdf, or position information.
  4738.  
  4739.     Access to term frequency information is only available until the iterator
  4740.     has moved on.
  4741.  
  4742.     If prefix is supplied, only terms which start with that prefix will be
  4743.     returned.
  4744.  
  4745.     """
  4746.     if prefix is None:
  4747.         return TermIter(self.allterms_begin(), self.allterms_end(),
  4748.                         has_termfreq=TermIter.LAZY)
  4749.     else:
  4750.         return TermIter(self.allterms_begin(prefix), self.allterms_end(prefix),
  4751.                         has_termfreq=TermIter.LAZY)
  4752. Database.__iter__ = _database_gen_allterms_iter
  4753. Database.allterms = _database_gen_allterms_iter
  4754.  
  4755. # Modify Database to add a "termlist()" method.
  4756. def _database_gen_termlist_iter(self, docid):
  4757.     """Get an iterator over all the terms which index a given document ID.
  4758.  
  4759.     The iterator will return TermListItem objects.
  4760.  
  4761.     Access to term frequency and position information is only available until
  4762.     the iterator has moved on.
  4763.  
  4764.     """
  4765.     # Note: has_termfreq is set to LAZY because most databases don't store term
  4766.     # frequencies in the termlist (because this would require updating many termlist
  4767.     # entries for every document update), so access to the term frequency requires a
  4768.     # separate lookup.
  4769.     return TermIter(self.termlist_begin(docid), self.termlist_end(docid),
  4770.                     has_termfreq=TermIter.LAZY,
  4771.                     has_wdf=TermIter.EAGER,
  4772.                     has_positions=TermIter.LAZY)
  4773. Database.termlist = _database_gen_termlist_iter
  4774.  
  4775. # Modify Database to add a "spellings()" method.
  4776. def _database_gen_spellings_iter(self):
  4777.     """Get an iterator which returns all the spelling correction targets
  4778.  
  4779.     The iterator will return TermListItem objects.  Only the term frequency is
  4780.     available; wdf and positions are not meaningful.
  4781.  
  4782.     """
  4783.     return TermIter(self.spellings_begin(), self.spellings_end(),
  4784.                     has_termfreq=TermIter.EAGER,
  4785.                     has_wdf=TermIter.INVALID,
  4786.                     has_positions=TermIter.INVALID)
  4787. Database.spellings = _database_gen_spellings_iter
  4788.  
  4789. # Modify Database to add a "synonyms()" method.
  4790. def _database_gen_synonyms_iter(self, term):
  4791.     """Get an iterator which returns all the synonyms for a given term.
  4792.  
  4793.     The term to return synonyms for is specified by the `term` parameter.
  4794.  
  4795.     The iterator will return string objects.
  4796.  
  4797.     """
  4798.     return TermIter(self.synonyms_begin(term),
  4799.                     self.synonyms_end(term),
  4800.                     return_strings=True)
  4801. Database.synonyms = _database_gen_synonyms_iter
  4802.  
  4803. # Modify Database to add a "synonym_keys()" method.
  4804. def _database_gen_synonym_keys_iter(self, prefix=""):
  4805.     """Get an iterator which returns all the terms which have synonyms.
  4806.  
  4807.     The iterator will return string objects.
  4808.  
  4809.     If `prefix` is non-empty, only terms with this prefix are returned.
  4810.  
  4811.     """
  4812.     return TermIter(self.synonym_keys_begin(prefix),
  4813.                     self.synonym_keys_end(prefix),
  4814.                     return_strings=True)
  4815. Database.synonym_keys = _database_gen_synonym_keys_iter
  4816.  
  4817. # Modify Document to add an "__iter__()" method and a "termlist()" method.
  4818. def _document_gen_termlist_iter(self):
  4819.     """Get an iterator over all the terms in a document.
  4820.  
  4821.     The iterator will return TermListItem objects.
  4822.  
  4823.     Access to term frequency and position information is only available until
  4824.     the iterator has moved on.
  4825.  
  4826.     Note that term frequency information is only meaningful for a document
  4827.     retrieved from a database.  If term frequency information is requested for
  4828.     a document which was freshly created, an InvalidOperationError will be
  4829.     raised.
  4830.  
  4831.     """
  4832.     # Note: document termlist iterators may be implemented entirely in-memory
  4833.     # (in which case access to all items could be allowed eagerly), but may
  4834.     # also be implemented by returning a database termlist (for documents which
  4835.     # are stored in a database, rather than freshly created).  We choose the
  4836.     # most conservative settings, to avoid doing eager access when lazy access
  4837.     # would be more appropriate.
  4838.     return TermIter(self.termlist_begin(), self.termlist_end(),
  4839.                     has_termfreq=TermIter.LAZY,
  4840.                     has_wdf=TermIter.EAGER,
  4841.                     has_positions=TermIter.LAZY)
  4842. Document.__iter__ = _document_gen_termlist_iter
  4843. Document.termlist = _document_gen_termlist_iter
  4844.  
  4845. # Modify QueryParser to add a "stoplist()" method.
  4846. def _queryparser_gen_stoplist_iter(self):
  4847.     """Get an iterator over all the stopped terms from the previous query.
  4848.     
  4849.     This returns an iterator over all the terms which were omitted from the
  4850.     previously parsed query due to being considered to be stopwords.  Each
  4851.     instance of a word omitted from the query is represented in the returned
  4852.     list, in the order in which the
  4853.  
  4854.     The iterator will return string objects.
  4855.  
  4856.     """
  4857.     return TermIter(self.stoplist_begin(), self.stoplist_end(),
  4858.                     return_strings=True)
  4859. QueryParser.stoplist = _queryparser_gen_stoplist_iter
  4860.  
  4861. # Modify QueryParser to add an "unstemlist()" method.
  4862. def _queryparser_gen_unstemlist_iter(self, tname):
  4863.     """Get an iterator over all the unstemmed forms of a stemmed term.
  4864.     
  4865.     This returns an iterator which returns all the unstemmed words which were
  4866.     stemmed to the stemmed form specifed by `tname` when parsing the previous
  4867.     query.  Each instance of a word which stems to `tname` is returned by the
  4868.     iterator in the order in which the words appeared in the query - an
  4869.     individual unstemmed word may thus occur multiple times.
  4870.  
  4871.     The iterator will return string objects.
  4872.  
  4873.     """
  4874.     return TermIter(self.unstem_begin(tname), self.unstem_end(tname),
  4875.                     return_strings=True)
  4876. QueryParser.unstemlist = _queryparser_gen_unstemlist_iter
  4877.  
  4878.  
  4879.  
  4880. ##########################################
  4881. # Support for iteration of posting lists #
  4882. ##########################################
  4883.  
  4884. class PostingItem(_SequenceMixIn):
  4885.     """An item returned from iteration of a posting list.
  4886.  
  4887.     The item supports access to the following attributes and properties:
  4888.  
  4889.      - `docid`: The document ID corresponding to this PostingItem.
  4890.      - `doclength`: The length of the document corresponding to this
  4891.        PostingItem.
  4892.      - `wdf`: The within document frequency of the term which the posting list
  4893.        is for in the document corresponding to this PostingItem.
  4894.      - `positer`: An iterator over the positions which the term corresponing to
  4895.        this posting list occurs at in the document corresponding to this
  4896.        PostingItem.  This is only available until the iterator which returned
  4897.        this item next moves.
  4898.  
  4899.     """
  4900.     __slots__ = ('_iter', 'docid', 'doclength', 'wdf',)
  4901.  
  4902.     def __init__(self, iter):
  4903.         self._iter = iter
  4904.         self.docid = iter._iter.get_docid()
  4905.         self.doclength = iter._iter.get_doclength()
  4906.         self.wdf = iter._iter.get_wdf()
  4907.  
  4908.         # Support for sequence API
  4909.         sequence = ['docid', 'doclength', 'wdf', 'positer']
  4910.         if not iter._has_positions:
  4911.             sequence[3] = PositionIter()
  4912.         _SequenceMixIn.__init__(self, *sequence)
  4913.  
  4914.     def _get_positer(self):
  4915.         """Get a position list iterator.
  4916.  
  4917.         The iterator will return integers representing the positions that the
  4918.         term occurs at in the document corresponding to this PostingItem.
  4919.  
  4920.         This will raise a InvalidOperationError exception if the iterator this
  4921.         item came from doesn't support position lists, or if the iterator has
  4922.         moved on since the item was returned from it.
  4923.  
  4924.         """
  4925.         if not self._iter._has_positions:
  4926.             raise InvalidOperationError("Iterator does not support position lists")
  4927.         if self._iter._iter == self._iter._end or \
  4928.            self.docid != self._iter._iter.get_docid():
  4929.             raise InvalidOperationError("Iterator has moved, and does not support random access")
  4930.         return PositionIter(self._iter._iter.positionlist_begin(),
  4931.                             self._iter._iter.positionlist_end())
  4932.     positer = property(_get_positer, doc=
  4933.     """A position iterator for the current posting (if meaningful).
  4934.  
  4935.     The iterator will return integers representing the positions that the term
  4936.     occurs at.
  4937.  
  4938.     This will raise a InvalidOperationError exception if the iterator this item
  4939.     came from doesn't support position lists, or if the iterator has moved on
  4940.     since the item was returned from it.
  4941.  
  4942.     """)
  4943.  
  4944.  
  4945. class PostingIter(object):
  4946.     """An iterator over a posting list.
  4947.  
  4948.     The iterator will return PostingItem objects, which will be evaluated
  4949.     lazily where appropriate.
  4950.  
  4951.     """
  4952.     __slots__ = ('_iter', '_end', '_has_positions', '_moved')
  4953.  
  4954.     def __init__(self, start, end, has_positions=False):
  4955.         self._iter = start
  4956.         self._end = end
  4957.         self._has_positions = has_positions
  4958.  
  4959.         # _moved is True if we've moved onto the next item.  This is needed so
  4960.         # that the iterator doesn't have to move on until just before next() is
  4961.         # called: since the iterator starts by pointing at a valid item, we
  4962.         # can't just call self._iter.next() unconditionally at the start of our
  4963.         # next() method.
  4964.         self._moved = True
  4965.  
  4966.     def __iter__(self):
  4967.         return self
  4968.  
  4969.     def next(self):
  4970.         if not self._moved:
  4971.             self._iter.next()
  4972.             self._moved = True
  4973.  
  4974.         if self._iter == self._end:
  4975.             raise StopIteration
  4976.         else:
  4977.             self._moved = False
  4978.             return PostingItem(self)
  4979.  
  4980.     def skip_to(self, docid):
  4981.         """Skip the iterator forward.
  4982.  
  4983.         The iterator is advanced to the first document with a document ID
  4984.         which is greater than or equal to the supplied document ID.
  4985.  
  4986.         If there are no such items, this will raise StopIteration.
  4987.  
  4988.         This returns the item which the iterator is moved to.  The subsequent
  4989.         item will be returned the next time that next() is called (unless
  4990.         skip_to() is called again first).
  4991.  
  4992.         """
  4993.         if self._iter != self._end:
  4994.             self._iter.skip_to(docid)
  4995.         if self._iter == self._end:
  4996.             self._moved = True
  4997.             raise StopIteration
  4998.         self._moved = False
  4999.         return PostingItem(self)
  5000.  
  5001. def _database_gen_postlist_iter(self, tname):
  5002.     """Get an iterator over the postings which are indexed by a given term.
  5003.  
  5004.     If `tname` is empty, an iterator over all the documents will be returned
  5005.     (this will contain one entry for each document, will always return a wdf of
  5006.     1, and will not allow access to a position iterator).
  5007.  
  5008.     """
  5009.     if len(tname) != 0:
  5010.         return PostingIter(self.postlist_begin(tname), self.postlist_end(tname),
  5011.                            has_positions=True)
  5012.     else:
  5013.         return PostingIter(self.postlist_begin(tname), self.postlist_end(tname))
  5014. Database.postlist = _database_gen_postlist_iter
  5015.  
  5016.  
  5017. ###########################################
  5018. # Support for iteration of position lists #
  5019. ###########################################
  5020.  
  5021. class PositionIter(object):
  5022.     """An iterator over a position list.
  5023.  
  5024.     The iterator will return integers, in ascending order.
  5025.  
  5026.     """
  5027.     def __init__(self, start = 0, end = 0):
  5028.         self.iter = start
  5029.         self.end = end
  5030.  
  5031.     def __iter__(self):
  5032.         return self
  5033.  
  5034.     def next(self):
  5035.         if self.iter==self.end:
  5036.             raise StopIteration
  5037.         else:
  5038.             r = self.iter.get_termpos()
  5039.             self.iter.next()
  5040.             return r
  5041.  
  5042. # Modify Database to add a "positionlist()" method.
  5043. def _database_gen_positionlist_iter(self, docid, tname):
  5044.     """Get an iterator over all the positions in a given document of a term.
  5045.     
  5046.     The iterator will return integers, in ascending order.
  5047.  
  5048.     """
  5049.     return PositionIter(self.positionlist_begin(docid, tname), self.positionlist_end(docid, tname))
  5050. Database.positionlist = _database_gen_positionlist_iter
  5051.  
  5052. ########################################
  5053. # Support for iteration of value lists #
  5054. ########################################
  5055.  
  5056. class ValueItem(_SequenceMixIn):
  5057.     """An item returned from iteration of the values in a document.
  5058.  
  5059.     The item supports access to the following attributes:
  5060.  
  5061.      - `num`: The number of the value.
  5062.      - `value`: The contents of the value.
  5063.  
  5064.     """
  5065.  
  5066.     __slots__ = ('num', 'value', )
  5067.  
  5068.     def __init__(self, num, value):
  5069.         self.num = num
  5070.         self.value = value
  5071.         _SequenceMixIn.__init__(self, 'num', 'value')
  5072.  
  5073. class ValueIter(object):
  5074.     """An iterator over all the values stored in a document.
  5075.  
  5076.     The iterator will return ValueItem objects, in ascending order of value number.
  5077.  
  5078.     """
  5079.     def __init__(self, start, end):
  5080.         self.iter = start
  5081.         self.end = end
  5082.  
  5083.     def __iter__(self):
  5084.         return self
  5085.  
  5086.     def next(self):
  5087.         if self.iter==self.end:
  5088.             raise StopIteration
  5089.         else:
  5090.             r = ValueItem(self.iter.get_valueno(), self.iter.get_value())
  5091.             self.iter.next()
  5092.             return r
  5093.  
  5094. # Modify Document to add a "values()" method.
  5095. def _document_gen_values_iter(self):
  5096.     """Get an iterator over all the values stored in a document.
  5097.  
  5098.     The iterator will return ValueItem objects, in ascending order of value number.
  5099.  
  5100.     """
  5101.     return ValueIter(self.values_begin(), self.values_end())
  5102. Document.values = _document_gen_values_iter
  5103.  
  5104. # Set the list of names which should be public.
  5105. # Note that this needs to happen at the end of xapian.py.
  5106. __all__ = []
  5107. for item in dir():
  5108.     if item.startswith('_') or item.endswith('_swigregister') or item.endswith('Iterator'):
  5109.         continue
  5110.     __all__.append(item)
  5111. __all__ = tuple(__all__)
  5112.  
  5113.  
  5114. # Fix up ValueRangeProcessor by replacing its __call__ method (which doesn't
  5115. # work) with its __call() method (which we define with an %extend in util.i)
  5116. ValueRangeProcessor.__call__ = ValueRangeProcessor.__call
  5117.  
  5118.  
  5119.  
  5120.  
  5121.